我的代码看起来像这样:
for(i=0; i<max;i++){
for(j=0; j<max2;j++)
//stuff
}
for(i=0; i<max;i++){
for(j=0; j<max2;j++)
//other stuff
}
for(i=0; i<max;i++){
for(j=0; j<max2;j++)
//final stuff
}
我想使用 OpenMP 将其并行化。最好的方法是什么?我尝试#pragma omp parallel private(i)
在开始和#pragma omp for
每个j
循环之前进行。这就是我的意思:
#pragma omp parallel private(i)
{
for(i=0; i<max;i++){
#pragma omp for
for (j=0; j<max2;j++){
//and so on and so forth
问题是,这没有给我任何性能提升。我怀疑这是因为 3 个for
循环不是并行运行的……如果我能让这 3 个循环同时运行,我想我可以获得性能提升。有任何想法吗?谢谢!