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;
}