MPI_COMM_WORLD 子范围的 MPI 通信器

MPI communicator for sub-range of MPI_COMM_WORLD

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

rStart >= 0,即需要排除第 rStart 行。

最简单的代码就是

MPI_Comm_split(MPI_COMM_WORLD, rank < rStart, rank, &new_comm);

运行 在 MPI_COMM_WORLD 所有等级 上。它将创建两个通讯器 - 所有以 rStart 开头的等级都会得到你想要的一个,其他人可以 MPI_Comm_free 他们的通讯器。

如果您不能轻松地让排除的排名 运行 具有相同的代码,您可以使用 MPI_Comm_create_group,但您还必须先创建组。