A.23 ordered 指令的示例
可以使多个与 for 的有序部分指定与 ordered 子句。 ,因为 API 指定以下内容,第一个示例是不符合:
“的循环的迭代与 for 结构化不可多次执行相同 ordered 指令,因此,它无法执行多个 ordered 指令”。(请参见在第 22 页) 的 第2.6.6部分
不在此示例中,所有迭代执行 2 个有序的部分:
#pragma omp for ordered
for (i=0; i<n; i++)
{
...
#pragma omp ordered
{ ... }
...
#pragma omp ordered
{ ... }
...
}
下面的示例演示带有多个有序的 for :
#pragma omp for ordered
for (i=0; i<n; i++)
{
...
if (i <= 10)
{
...
#pragma omp ordered
{ ... }
}
...
(i > 10)
{
...
#pragma omp ordered
{ ... }
}
...
}