如何使用OpenMP并行处理这两个循环?

时间:2018-10-27 17:58:09

标签: c++ parallel-processing openmp

通过使用“ #pragma omp single nowait”和“ #pragma omp for两个不同的循环”,这是并行处理两个for循环的正确方法吗?还是有其他方法可以做到?

#pragma omp single nowait
{
for (i = ; i < N; i += )
{
D[i] = x * A[i] + x * B[i]; 
}
#pragma omp for
for (i = 0; i < N; i++)
C[i] = c * D[i];
}
} // end omp parallel

1 个答案:

答案 0 :(得分:0)

您应该注意,实际上您可以将两个for循环合并为一个...因为每个i都需要计算D [i],然后,C [i]的计算仅取决于D [i ]。

您应该以这种方式组合循环,然后像对第二个循环那样使用omp作为