MPI通讯器,用于MPI_COMM_WORLD的子范围

时间:2019-03-06 15:57:24

标签: mpi communicator

创建包含(MPI_COMM_WORLD的连续等级[MPI_COMM_WORLD,...,最后rStart]]的(子)通信器的简单方法是什么?

rStart为> = 0,即需要排除前{{1}}个排名。

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,但随后还必须首先创建组。