Compartir a través de


Ejemplos A.23 de directiva ordenada

Es posible tener secciones ordenadas varias con for especificado con la cláusula de ordered .El primer ejemplo no es compatible porque la API especifica lo siguiente:

“Una iteración de un bucle con una construcción de for no debe ejecutar la misma directiva de ordered más de una vez, y no debe ejecutar más de una directiva de ordered .” (Vea sección 2.6.6 en la página 22)

En este ejemplo no compatible, todas las iteraciones se ejecutan 2 secciones ordenadas:

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

El ejemplo bajo siguiente muestra a for con varias la sección ordenada:

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