我在一个程序中使用 mpi4py。我用 n>1 个内核运行程序,每个内核都有自己的列表(我们可以将其称为“core_specific_list”的数字。我希望 0 级内核将所有列表收集在一个大列表中,我们可以称之为“big_list” .
我开始程序(只是为了定义变量):
from mpi4py import MPI
comm = MPI.COMM_WORLD
所以,为了让大名单做到这一点,我让每个核心调用:
big_list = comm.gather(core_specific_list, root = 0)
这确实按预期创建了 big_list(其中每个元素都是其他等级的 core_specific_list 之一)。而且似乎每个列表元素都按照发送它的等级顺序排列(也就是说,big_list 的元素 0 是等级 0 的 core_specific_list 等)。
问:但是这个假设正确吗?也就是说,big_list 中的元素 j 是秩 j 的 core_specific_list 吗?(我知道我可以像我一样在某些情况下对此进行测试,但我需要绝对确保我可以依赖这个假设)
谢谢你。