【发布时间】:2017-02-08 18:52:03
【问题描述】:
假设您已经设计了一个带有嵌套 for 循环的顺序程序,并且希望将其转换为与 OpenMP 并行,并分段处理它以在进行时进行调试...首先处理最外层循环会更好吗并按自己的方式工作,还是从最里面的循环开始?我知道折叠功能,但并非所有嵌套循环都是可折叠的。
【问题讨论】:
-
这是一个相当广泛的问题。有许多因素会影响推荐。您能否通过在通用嵌套循环之外提供一些细节来缩小范围,最好以实际代码的形式。
-
顺便说一句:我会说尽可能外部,尽可能内部。但我不认为这是一个有用的答案。
-
一些不能用
collapse子句折叠的嵌套循环仍然可以手动折叠,例如三角环。无论如何,学习如何手动折叠循环很有用。 -
您确实应该在代码中提供一些示例。
标签: c++ parallel-processing openmp nested-loops