C++ 在#pragma omp并行的末尾是否存在隐含的障碍?

C++ 在#pragma omp并行的末尾是否存在隐含的障碍?,c++,openmp,C++,Openmp,主线程是否会等待在并行区域开始时生成的所有团队完成,然后再运行并行区域后面的内容?是的,,“在并行构造的末尾有一个隐式障碍。” ,1.3执行模型,第15页。我认为这是显而易见的,但我认为嵌套并行性的问题变得更有趣。这一定意味着并行构造中的并行构造具有隐式屏障?让我反过来说,你能移除嵌套并行的并行构造中的隐式屏障吗?@Z玻色子:并行区域末端的隐式屏障适用于其中的线程团队。在团队中的所有线程到达并行区域的末尾之前,主线程不能离开并行区域。这不受平行区域是否嵌套的影响,因为在平行的外层没有障碍…@Zb

主线程是否会等待在并行区域开始时生成的所有团队完成,然后再运行并行区域后面的内容?

是的,,“在
并行
构造的末尾有一个隐式障碍。”


,1.3执行模型,第15页。

我认为这是显而易见的,但我认为嵌套并行性的问题变得更有趣。这一定意味着并行构造中的并行构造具有隐式屏障?让我反过来说,你能移除嵌套并行的并行构造中的隐式屏障吗?@Z玻色子:并行区域末端的隐式屏障适用于其中的线程团队。在团队中的所有线程到达并行区域的末尾之前,主线程不能离开并行区域。这不受平行区域是否嵌套的影响,因为在平行的外层没有障碍…@Zboson是的,我不相信你能移除它。即使对于组合的
parallel
结构,也明确规定不能使用
nowait