Partager via


A.23 Exemples de directive ordered

Il est possible d'avoir les sections classées par plusieurs avec for spécifié avec la clause d' ordered . le premier exemple est non conforme parce que l'API spécifie ce qui suit :

« Une itération d'une boucle avec un élément d' for ne doit pas effectuer la même directive d' ordered plusieurs fois, et elle ne doit pas exécuter plusieurs directive d' ordered  ». (Consultez section 2.6.6 à la page 22)

dans cet exemple non conforme, toutes les itérations exécutent 2 sections classées :

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

L'exemple conforme suivant montre for avec plusieurs section classée :

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