在这个例子中,编译器会忽视 depend (sink: i, j - 1) 依赖,因为外部循环参与了工作负载,内部循环使用字典顺序迭代;因此,等到 i, j 迭代被执行的时候, i, j – 1迭代肯定就完成了。
除了允许 depend 子句在命令指令中,OpenMP 4.5 还一直允许 threads 和 simd 子句有序构造,还允许 在 SIMD 循环中使用 #pragma omp ordered simd 。这标志着在字典顺序执行代码的区域内 SIMD 循环,对于一小部分代码,不应向量化的 vectorizable 循环。
数据共享变更
包括最新的更新,C++参考现在在私有化条款中已经被允许,以前他们只允许共享条款。