我不清楚openMP中的“共享”是什么。我看到共享的spec个状态“声明一个或多个列表项由任务共享......”但这对我来说似乎不清楚。
例如,如果我有以下代码:
#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循环结束时给出准确的结果吗?如果没有,它到底是做什么的?