A.23 Beispiele der geordneten Direktive
Es ist möglich, mehrere geordnete Abschnitte mit for verfügen, das der ordered-Klausel angegeben wird.Im ersten Beispiel ist inkompatibel, da die API Folgendes angegeben wird:
„Eine Iteration einer Schleife mit einem for Konstrukt darf die gleichen ordered-Direktive nicht mehrmals ausführen, und sie dürfen nicht mehr als eine ordered-Direktive ausführen“. (Siehe 2.6.6 Abschnitt auf Seite 22)
In diesem nicht kompatiblen Beispiel werden alle Iterationen 2 geordnete Abschnitte aus:
#pragma omp for ordered
for (i=0; i<n; i++)
{
...
#pragma omp ordered
{ ... }
...
#pragma omp ordered
{ ... }
...
}
Im Folgenden kompatible Beispiel wird for mit mehr als einem geordneten Abschnitts veranschaulicht:
#pragma omp for ordered
for (i=0; i<n; i++)
{
...
if (i <= 10)
{
...
#pragma omp ordered
{ ... }
}
...
(i > 10)
{
...
#pragma omp ordered
{ ... }
}
...
}