Partilhar via


A.23 Exemplos da diretiva ordered

É possível ter várias seções ordenadas com um for especificado com o ordered cláusula. O primeiro exemplo é incompatível porque a API Especifica o seguinte:

"Uma iteração de um loop com uma for construção não deve executar o mesmo ordered diretiva por mais de uma vez e ele não devem executar mais de um ordered diretiva." (Consulte seção 2.6.6 na página 22)

Neste exemplo não compatíveis, todas as iterações executar duas seções ordenadas:

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

Mostra o seguinte exemplo compatível com um for com mais de um pedido na seção:

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