A.18 入れ子になった for ディレクティブ
次の入れ子になった for ディレクティブ (33 ページのセクション 2.9) の例は、内側と外側の for ディレクティブが別々の並行領域にバインドされていることから、準拠しています。
#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);
}
}
}
前の例の別の形式ですが、これも準拠しています。
#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;
}