我不清楚 openMP 中“共享”的作用。我看到共享的规范声明“声明一个或多个由任务共享的列表项......”但这对我来说似乎不清楚。
例如,如果我有以下代码:
#pragma omp parallel for shared(num1)
for(i=0; i<m; i++) {
for(j=0; j < n; j++) {
if(myFunc(i,j) < 0) {
num1 += 256*u(i,j);
}
}
}
这是否会停止使用 num1 的竞争条件并在此 for 循环结束时给出准确的结果?如果不是,它具体是做什么的?