MPI - 如何处理不能被线程数整除的动态工作负载?

时间:2012-04-08 22:06:34

标签: openmpi

我注意到所有MPI调用都需要一定程度的对称性,否则它们会挂起和/或产生意外结果。你如何攻击动态问题或数据集?

我在网上找到的每个例子总是将问题分解成均匀可分的块,或者在计算中使用重复的代码块。

假设我有8个线程可用,但我想要做的工作是以57,80,99,64,13等为单位...

是否有解决此类问题的首选方法?减少似乎需要对线程之间的函数进行相等的调用? (即57,即使最后7个没有意义,每个线程也需要8次调用)Scatter似乎是相似的。是否有类似Scatter的东西适用于非均匀可分的问题集?

1 个答案:

答案 0 :(得分:0)

如果使用写入/发送功能与分散相比,您将对如何分配数据有很多控制权,尽管它有更多的负担。理想情况下,尽可能均匀地划分数据,让主进程完成额外的工作。