【发布时间】:2013-02-24 15:11:24
【问题描述】:
我查看了官方定义,但我仍然很困惑。
firstprivate:指定每个线程应该有自己的变量实例,并且该变量应该用变量的值初始化,因为它存在于并行构造之前。
对我来说,这听起来很像私人的。我找了一些例子,但我似乎不明白它有什么特别之处或如何使用它。
lastprivate:指定封闭上下文的变量版本设置为等于执行最终迭代(for-loop 构造)或最后一节(#pragma 节)的线程的私有版本。
由于以下示例,我觉得我对这一点的理解更好:
#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];
所以,在这个例子中,我知道lastprivate 允许i 在循环之外作为最后一个值返回。
我今天刚开始学习 OpenMP。
【问题讨论】:
标签: openmp