Инструкция блокировки OpenMP в функции, вызываемой параллельным циклом ⇐ C++
Инструкция блокировки OpenMP в функции, вызываемой параллельным циклом
У меня есть функция, которую я вызываю в параллельном цикле for. Все в этой функции можно делать параллельно, за исключением одного приращения переменной, которое необходимо заблокировать. Я попытался поставить #pragma ompatomic перед инструкцией, но похоже, что поскольку функция вызывается только в параллельном цикле, а не пареллируется сама по себе, компилятор вызывает ошибку: error: Здесь нельзя использовать #pragma.
Мой код выглядит следующим образом (C++):
класс MyClass { частный: интервал ** данные; INT data_size; публика: size_t myFunc (int r, int i) { int n = longFunc(...); // Длинный код, который при необходимости можно выполнять параллельно for (int j = 0; j
У меня есть функция, которую я вызываю в параллельном цикле for. Все в этой функции можно делать параллельно, за исключением одного приращения переменной, которое необходимо заблокировать. Я попытался поставить #pragma ompatomic перед инструкцией, но похоже, что поскольку функция вызывается только в параллельном цикле, а не пареллируется сама по себе, компилятор вызывает ошибку: error: Здесь нельзя использовать #pragma.
Мой код выглядит следующим образом (C++):
класс MyClass { частный: интервал ** данные; INT data_size; публика: size_t myFunc (int r, int i) { int n = longFunc(...); // Длинный код, который при необходимости можно выполнять параллельно for (int j = 0; j
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Intel OpenMP и LLVM OpenMP конфликтуют с MacOS без использования conda
Anonymous » » в форуме Python - 0 Ответы
- 86 Просмотры
-
Последнее сообщение Anonymous
-