- 主题:openmp使用问题
中间拔过OpenMp IR生成,只会在第一层进行Task并行,第二层在进行OpenMp没啥鸟用,因为实际上并没有保证能得到核并行加速。
【 在 grainbuds 的大作中提到: 】
: 有什么具体原因吗
: 【 在 Madlee (无竹居士) 的大作中提到: 】
: : 不要嵌套,不要嵌套,不要嵌套,
: ...................
--
FROM 101.38.102.*
回答你另一个问题就是,其是在编译期先计算好或者runtime中动态计算,而不是每次都for循环都注销。
你可以看成人工把for循环切成了尽可能均衡的迭代次数。每个for循环迭代次数执行完之后,等待同步。
【 在 grainbuds 的大作中提到: 】
: 有一段代码想利用openmp进行并行,大概示例如下:
: class A
: {
: ...................
--
FROM 101.38.102.*
可以把IR打开,看看实现思路,整体上不难,就可以找到问题的关键了
【 在 grainbuds 的大作中提到: 】
: 好的,多谢,不过我遇到的问题是嵌套调用居然比不用慢了非常多,也是奇怪。
: 另外现在实验用的CPU核心数约80个,应该是足够的。
--
FROM 101.38.102.*