Самый простой код -
MPI_Comm_split(MPI_COMM_WORLD, rank < rStart, rank, &new_comm);
, работающий на всех рангах из MPI_COMM_WORLD
.Он создаст два коммуникатора - все ранги, начинающиеся с rStart
, получат тот, который вы хотите, другие могут просто MPI_Comm_free
свой коммуникатор.можно использовать MPI_Comm_create_group
, но затем сначала нужно создать группу.