这两个OpenMP结构之间的区别

时间:2011-06-15 23:02:25

标签: openmp

如果我只有1个循环而没有其他内容,是否有任何理由使用第二个构造?谢谢!

#pragma omp parallel for
// for loop goes here


#pragma omp parallel  
{  
  #pragma omp for  
  // for loop goes here
}

2 个答案:

答案 0 :(得分:3)

对于大多数实现,第一个结构只有一个隐式屏障,而第二个结构可能有两个(取决于实现在删除冗余屏障方面有多好)。如果实现很好,你不应该看到两者之间有任何区别。

答案 1 :(得分:1)

我完全是第二个ejd所说的。 我想补充一个事实,即可以使用nowait子句,以便线程在并行循环结束时不同步。