1 / 1 / 1
Регистрация: 08.06.2013
Сообщений: 70
|
|||||||||||
1 | |||||||||||
Распараллеливание28.09.2013, 12:44. Показов 3544. Ответов 10
Метки нет (Все метки)
Написал программу для полного перебора всех возможных n-значных комбинаций состоящих из [0,..,9,a,...,z]. Написал 3 программы: последовательный перебор, рандомный перебор, псевдорандомный перебор. Возникла проблема с распараллеливанием.
Вот код:
Распаралеливать пробовал только так:
0
|
28.09.2013, 12:44 | |
Ответы с готовыми решениями:
10
OpenMP: распараллеливание цикла Распараллеливание программы по всем процессам компьютера Распараллеливание с MPI Распараллеливание |
Z3JheSBoYXQ=
342 / 237 / 83
Регистрация: 08.07.2012
Сообщений: 577
|
|
28.09.2013, 13:48 | 2 |
Тут не Си, а ++. Что совсем не то, для форума по Си.
Далее, берем любой сносный "букварь" по профессиональному программированию на Си, открываем раздел потоки и "курим" до полного просветления. Благо, что там ничего сложного нет по существу, после того как ясно осознаешь и поймешь как все внутренняя "кухня" работает.
0
|
...
1906 / 1326 / 965
Регистрация: 12.02.2013
Сообщений: 2,172
|
|
28.09.2013, 14:03 | 3 |
Artaner, из циклов расспараллеливать можно только цикл for. Цикл while может осилить по-моему только intel-овский компилятор.
А теперь посмотрите, что вы сделали: 1. (12 строка) Все потоки начинают выполнять while, т.е. каждый выполняет одно и то же. 2. (20 строка) Цикл for выполняется одним потоком. Я начинал вот с этой документации. Ещё просветится можно здесь. А из книг, вот эта очень даже не плоха, правда очень много примеров не на C, а на fortran-е.
0
|
Z3JheSBoYXQ=
342 / 237 / 83
Регистрация: 08.07.2012
Сообщений: 577
|
|
28.09.2013, 14:20 | 4 |
Все же настоятельно рекомендую сначала "вкурить" главу про потоки и уже потом читать вышеуказанные частности. Потоки это основа. Все остальное - частности, проистекающие из базы (основы).
0
|
1 / 1 / 1
Регистрация: 08.06.2013
Сообщений: 70
|
||||||
28.09.2013, 15:51 [ТС] | 5 | |||||
Решил взять программу попроще, вот кусок кода:
0
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|
28.09.2013, 16:15 | 6 |
fanatdebian
Приклодное программирование под OpenMP не предполагает обязатеьное знание "внутренней кухни" потоковой архитектуры.
0
|
1 / 1 / 1
Регистрация: 08.06.2013
Сообщений: 70
|
||||||
28.09.2013, 16:41 [ТС] | 7 | |||||
Вот вроде как работает, но время только увеличилось:
0
|
Z3JheSBoYXQ=
342 / 237 / 83
Регистрация: 08.07.2012
Сообщений: 577
|
|
28.09.2013, 22:07 | 8 |
0
|
1 / 1 / 1
Регистрация: 08.06.2013
Сообщений: 70
|
|
29.09.2013, 11:27 [ТС] | 10 |
А как тогда делать? Я ничего не нашел про это в интернете, мб не то\ не так искал.
0
|
29.09.2013, 14:01 | 11 |
Если есть возможность - использовать стандарт С++11, там вроде как потокобезопасные функции работы с генератором случайных чисел (которые объявлены в заголовке random).
А вообще, для меня распараллеливание в целях оптимизации (хотя других то и не бывает) и ГСЧ - вещи не совместимые.
0
|
29.09.2013, 14:01 | |
29.09.2013, 14:01 | |
Помогаю со студенческими работами здесь
11
Распараллеливание Распараллеливание Распараллеливание Распараллеливание Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |