A.6 使用 lastprivate 子句

正确执行有时取决于循环最后一个迭代分配给变量的值。 此类程序必须列出所有此类变量与参数传递给 lastprivate 子句 (在第 27 页) 的第2.7.2.3部分 ,以便变量的值是相同的,当循环顺序时地执行。

#pragma omp parallel
{
   #pragma omp for lastprivate(i)
      for (i=0; i<n-1; i++)
         a[i] = b[i] + b[i+1];
}
a[i]=b[i];

在前面的示例中, i 的值在并行区域末端将等于 n–1,在顺序大小写。