OpenMP: предложения nowait и Reduction в одной прагме

Я изучаю OpenMP и натолкнулся на следующий пример:

#pragma omp parallel shared(n,a,b,c,d,sum) private(i)
{
    #pragma omp for nowait
    for (i=0; i<n; i++)
        a[i] += b[i];

    #pragma omp for nowait
    for (i=0; i<n; i++)
        c[i] += d[i];
    #pragma omp barrier

    #pragma omp for nowait reduction(+:sum)
    for (i=0; i<n; i++)
        sum += a[i] + c[i];
} /*-- End of parallel region --*/

В последнем цикле for есть предложение nowait и сокращение. Это верно? Разве предложение сокращения не нужно синхронизировать?

10
задан aperez 11 June 2011 в 12:27
поделиться