【发布时间】:2012-04-07 07:29:15
【问题描述】:
我有以下嵌套的 for 循环。我想并行化第一个循环,但不能并行化第二个循环。所以我希望每个线程自己执行第二个循环,这意味着第二个循环对于每个线程必须是特殊的(对于代码中的每个“i”)。
我该怎么做?
#pragma omp parallel for
for (i=k+1;i<row;i++){
for (n=0;n<k;n++){
// #pragma omp atomic
dummy += L[i][n]*L[k][n];
L[i][k] = (A[i][k] - dummy)/L[k][k];
}
dummy = 0;
}
【问题讨论】:
-
不会,并行 for 适用于下一个 for 循环,但不适用于后续 ...
-
但结果证明这个循环是错误的。第二个循环必须受到来自多个线程的某种形式的干预。
标签: c++ parallel-processing openmp