Я хочу распараллелить цикл for-loop с помощью OpenMP (я уже сам использовал std :: threads раньше, но это решение было довольно уродливым), однако это условие может измениться на каждой итерации. Вот пример того, что я имею в виду:OpenMP: возможно различное условие в петле
#pragma omp parallel for
for(int i = 0; i < someVector.size(); i++)
{
. . .
if(something)
someVector.push_back(v);
}
Однако, это не работает. Кажется, что петля доходит до исходного значения someVector.size(). Есть ли способ распараллеливать такую конструкцию в OpenMP?
Является ли 'что-то' зависимым от' i'? – Barmar
Нет, это не имеет никакого отношения к этому. –
Тогда кажется маловероятным, что вы сможете распараллелить его, если он использует глобальные данные. – Barmar