Обоснование для MPI_Comm_dup(MPI_COMM_WORLD, ...)
заключается в том, что вы не хотите, чтобы сообщение, отправленное приложением MPI (в MPI_COMM_WORLD
), было получено библиотекой под капотом .И наоборот, вы не хотите, чтобы приложение MPI получало сообщение, отправленное библиотекой.
Простой способ избежать использования выделенного коммуникатора для библиотеки, а дублирование MPI_COMM_WORLD
- это самый простой способдостигните этого.
Ответ на ваш вопрос MPI_COMM_WORLD
не может быть изменен после MPI_Init()
.И вообще, коммуникаторы не могут быть изменены после создания.