Инструкция блокировки OpenMP в функции, вызываемой параллельным цикломC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Инструкция блокировки OpenMP в функции, вызываемой параллельным циклом

Сообщение Anonymous »


У меня есть функция, которую я вызываю в параллельном цикле 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»