Udostępnij za pośrednictwem


Przykłady A.23 dyrektywy zamówione

Jest możliwe sekcje zamówione z for z ordered klauzuli.Pierwszy przykład jest niezgodnych, ponieważ interfejs API określa następujące czynności:

"Iteracji pętli z for konstrukcja nie może wykonać takie same ordered dyrektywa więcej niż jeden raz, a nie może wykonać więcej niż jeden ordered dyrektywy." (Zobacz sekcji 2.6.6 na stronie 22)

W tym przykładzie niezgodnych iteracji wszystkich wykonanie 2 zamówione sekcje:

#pragma omp for ordered
for (i=0; i<n; i++) 
{
    ...
    #pragma omp ordered
    { ... }
    ...
    #pragma omp ordered
    { ... }
    ...
}

Ilustruje poniższy przykład zgodny z for z więcej niż jedną uporządkowane sekcji:

#pragma omp for ordered
for (i=0; i<n; i++) 
{
    ...
    if (i <= 10) 
    {
        ...
        #pragma omp ordered
        { ... }
    }
    ...
    (i > 10) 
    {
        ...
        #pragma omp ordered
        { ... }
    }
    ...
}