创建包含(MPI_COMM_WORLD
的连续等级[MPI_COMM_WORLD
,...,最后rStart
]]的(子)通信器的简单方法是什么?
rStart
为> = 0,即需要排除前{{1}}个排名。
答案 0 :(得分:2)
最简单的代码是
MPI_Comm_split(MPI_COMM_WORLD, rank < rStart, rank, &new_comm);
在MPI_COMM_WORLD
的所有等级上运行。它将创建两个沟通者-以rStart
开头的所有职衔都会得到您想要的一个,其他人只需MPI_Comm_free
就可以成为他们的沟通者。
如果不能轻易让被排除的等级运行相同的代码,则可以使用MPI_Comm_create_group
,但随后还必须首先创建组。