如果我只有1个循环而没有其他内容,是否有任何理由使用第二个构造?谢谢!
#pragma omp parallel for
// for loop goes here
#pragma omp parallel
{
#pragma omp for
// for loop goes here
}
答案 0 :(得分:3)
对于大多数实现,第一个结构只有一个隐式屏障,而第二个结构可能有两个(取决于实现在删除冗余屏障方面有多好)。如果实现很好,你不应该看到两者之间有任何区别。
答案 1 :(得分:1)
我完全是第二个ejd所说的。
我想补充一个事实,即可以使用nowait
子句,以便线程在并行循环结束时不同步。