У меня вопрос относительно локальных значений в параллельном цикле и обновления глобальной переменной.
Пример в псевдокоде: я ищу максимальное значение в очень длинном векторе.Я могу сделать это в цикле, например:
int max;
for(i ...) {
if (max < vector[i]) max = vector[i];
}
Я могу легко распараллелить это с OpenMP:
int max;
#pragma omp parallel
{
int local_max;
#pragma omp parallel for
for(i ...) {
if (local_max < vector[i]) local_max = vector[i];
}
#pragma omp critical
{
// choose the best solution from all
if (max < local_max) max = local_max; local_max
}
}
Как я могу сделать то же самое в TBB parallel_for
?Я не запрашиваю точный код, я хотел бы просто узнать, как обновить глобальный результат в конце цикла , а не на каждой итерации ...
(яновичок в TBB)