omp ordered和omp critical之间的区别

时间:2017-03-24 18:09:33

标签: c multithreading parallel-processing openmp critical-section

我试图了解omp ordered和omp critical之间的区别。他们俩都没有相同的语义吗?在每个代码中编写的代码都可以串行执行,而一个线程处于有序/关键块中,其他线程则等待。我看不出两者之间有什么不同。

1 个答案:

答案 0 :(得分:2)

omp critical用于互斥omp ordered是指特定循环,并确保该区域按循环迭代的顺序执行 。因此omp ordered强于omp critical,但也只在循环中有意义。

omp ordered还有一些其他条款,例如simd,仅强制使用单个SIMD通道。您还可以使用depend子句手动指定依赖项。

注意:omp criticalomp ordered区域在条目和出口处都有隐式内存刷新。