OpenMP: nowait et clauses de réduction sur le même pragma

Je suis étudiant OpenMP, et est venu à travers l'exemple suivant:

#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 --*/

Dans la dernière boucle, il y a un nowait et une clause de réduction. Est-ce correct? Ne pas la clause de réduction doivent être synchronisées?

source d'informationauteur aperez