A.18 Aninhado para diretivas
O exemplo a seguir de for aninhamento de diretiva (seção 2,9 na página 33) é compatível com porque internas e externas for diretivas vincular a diferentes regiões paralelas:
#pragma omp parallel default(shared)
{
#pragma omp for
for (i=0; i<n; i++)
{
#pragma omp parallel shared(i, n)
{
#pragma omp for
for (j=0; j<n; j++)
work(i, j);
}
}
}
Uma variação seguinte do exemplo anterior também é compatível com:
#pragma omp parallel default(shared)
{
#pragma omp for
for (i=0; i<n; i++)
work1(i, n);
}
void work1(int i, int n)
{
int j;
#pragma omp parallel default(shared)
{
#pragma omp for
for (j=0; j<n; j++)
work2(i, j);
}
return;
}