我有以下嵌套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;
}
答案 0 :(得分:1)
omp parallel for
pragma仅适用于紧随其后的循环。 i
循环将在线程之间分配。在i
的每次迭代中,n
循环将在同一个线程上执行。您的代码已经完成了您要执行的操作。