如何为嵌套循环配置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;
    }

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

最新更新