如何为嵌套循环配置openMP以保持内部循环不并行化?

时间:2012-04-07 07:29:16

标签: c++ parallel-processing openmp

我有以下嵌套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;
    }

1 个答案:

答案 0 :(得分:1)

omp parallel for pragma仅适用于紧随其后的循环。 i循环将在线程之间分配。在i的每次迭代中,n循环将在同一个线程上执行。您的代码已经完成了您要执行的操作。