0
MPI_Group
中的进程排名是根据输入进程的排名,通过向下移动排名来排序,例如最小组排名为零。是否可以自己订购MPI_Group
中的流程行列?MPI_Group中排名的自定义排序
在下面的代码中,显示了实际和所需的顺序。
#include <mpi.h>
int main()
{
MPI_Init(NULL, NULL);
MPI_Group world_group;
MPI_Comm_group(MPI_COMM_WORLD, &world_group);
int ranks[3] = {1, 2, 3};
MPI_Group group;
MPI_Group_incl(world_group, 3, ranks, &group);
/* actual order */
// old_rank[0] = 1 -- new_rank[0] = 0
// old_rank[1] = 2 -- new_rank[1] = 1
// old_rank[2] = 3 -- new_rank[2] = 2
/* desired order */
// old_rank[0] = 1 -- new_rank[0] = 1
// old_rank[1] = 2 -- new_rank[1] = 2
// old_rank[2] = 3 -- new_rank[2] = 0
MPI_Finalize();
return 0;
}