omp ordered 和 omp critical 之间的区别
Difference between omp ordered and omp critical
我想了解 omp ordered 和 omp critical 之间的区别。他们都没有相同的语义吗?每个线程中编写的代码都被串行执行,当一个线程在 ordered/critical 块中时,其他线程等待。我看不出两者有什么区别。
omp critical
是为了互斥,omp ordered
是指一个特定的循环,保证region按顺序依次执行循环迭代次数。因此 omp ordered
比 omp critical
强,但也只在循环中才有意义。
omp ordered
还有一些其他条款,例如 simd
强制仅使用单个 SIMD 通道。您还可以使用 depend
子句手动指定依赖项。
注意:omp critical
和 omp ordered
区域在入口和出口处都有隐式内存刷新。
我想了解 omp ordered 和 omp critical 之间的区别。他们都没有相同的语义吗?每个线程中编写的代码都被串行执行,当一个线程在 ordered/critical 块中时,其他线程等待。我看不出两者有什么区别。
omp critical
是为了互斥,omp ordered
是指一个特定的循环,保证region按顺序依次执行循环迭代次数。因此 omp ordered
比 omp critical
强,但也只在循环中才有意义。
omp ordered
还有一些其他条款,例如 simd
强制仅使用单个 SIMD 通道。您还可以使用 depend
子句手动指定依赖项。
注意:omp critical
和 omp ordered
区域在入口和出口处都有隐式内存刷新。