HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- синхронизация цикла в openmp (https://hlfx.ru/forum/showthread.php?threadid=4829)
Отправлено thambs 04-08-2016 в 12:36:
синхронизация цикла в openmp
Продублирую тему, вдруг тут кто имел дело с openmp, или подскажут как лучше сделать.
Иимеется следующая структура программы:
C++ Source Code:
10 | int n = omp_get_thread_num(); |
Есть внешний бесконечный цикл, внутри него параллельная секция. В каждом треде необходимо циклически обрабатывать независимый массив данных. Логика такова, что после каждой внутренней итерации запускается некоторый последовательный код, проверяющий, не выполнено ли условие выхода из цикла.
Вопрос: как гарантировать что каждая итерация внутреннего цикла будет запускаться синхронно всеми тредами? В текущей реализации, несмотря на барьер, похоже, что циклы рассинхронизируются и код зависает.
В конечном итоге, нужно просто циклически параллельно запускать do_struff(), а вся эта свистопляска с синхронизацией циклов вылезла из за того, что если написать просто:
C++ Source Code:
6 | int n = omp_get_thread_num(); |
то, временные затраты на спавн тредов оказываются слишком большими.__________________
http://www.moddb.com/mods/monorail-quest
Отправлено ~ X ~ 05-08-2016 в 08:31:
Вам, уважаемый, надо на стековерфлов.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Отправлено thambs 05-08-2016 в 14:16:
ложная тревога, это я где то похоже с общими ресурсами напортачил. в чистых тестах всё работает -- можно закрывать.
__________________
http://www.moddb.com/mods/monorail-quest