Этот раздел обсуждает функции, устанавливающие соединение между двумя группами процессов MPI, не разделяющими единый коммуникатор.
Некоторыми ситуациями, в которых эти функции могут быть полезны, являются следующие:
В каждой из этих ситуаций MPI должен установить каналы связи, не существовавшие ранее, и в которых не существует отношений родитель/потомок. Процедуры, описанные в этом разделе, устанавливают соединение между двумя группами процессов с помощью создания коммуникатора MPI, в котором две группы интеркоммуникатора являются оригинальными множествами процессов.
Установка соединения между двумя группами процессов, не разделяющими существующий коммуникатор, является коллективным, но асимметричным, процессом. Одна из групп процессов показывает свою готовность принять соединение от других групп процессов. Мы называем эту группу (параллельным) сервером, даже если у нас приложение не имеет тип клиент/сервер. Другая группа соединяется с сервером; мы называем ее клиентом.
Совет пользователям: Поскольку обозначения клиент и сервер используются на протяжении всего этого раздела, MPI не может гарантировать традиционную надежность приложений типа клиент/сервер. Функциональность, описанная в этом разделе, направлена на обеспечение возможности для двух совместно работающих частей одного приложения взаимодействовать друг с другом. В частности, клиент может вызвать ошибку нарушения сегментации и завершиться, или же клиент, не участвующий в коллективной работе может вызвать зависание или отказ сервера.[]