MPI-коммуникатор для поддиапазона MPI_COMM_WORLD - PullRequest
1 голос
/ 06 марта 2019

Какой простой способ создать (под) коммуникатор, содержащий последовательные ранги [rStart, ..., последний ранг MPI_COMM_WORLD] MPI_COMM_WORLD?

rStart is> = 0, т. Е. Первые rStart ранги должны быть исключены.

1 Ответ

2 голосов
/ 06 марта 2019

Самый простой код -

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

, работающий на всех рангах из MPI_COMM_WORLD.Он создаст два коммуникатора - все ранги, начинающиеся с rStart, получат тот, который вы хотите, другие могут просто MPI_Comm_free свой коммуникатор.можно использовать MPI_Comm_create_group, но затем сначала нужно создать группу.

...