我有以下嵌套的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;
}
omp parallel for
杂注仅应用于紧随其后的循环。i
循环将分布在线程之间。在i
的每次迭代中,n
循环将在同一个线程上执行。您的代码已经完成了您尝试执行的操作。