The Problem: The MPI-1.1 standard says, in the discussion of MPI_INTERCOMM_CREATE, both that
The groups must be disjoint
and that
The leaders may be the same process.
To further muddy the waters, the reason given for ``The groups must be
disjoint'' is based on concerns about the implementation of
MPI_INTERCOMM_CREATE that are not applicable for the case where
the leaders are the same process.
The Fix: Delete the text:
(the two leaders could be the same process)
from the discussion of MPI_INTERCOMM_CREATE.
Replace the text:
All inter-communicator constructors are blocking and require that the local
and remote groups be disjoint.
The groups must be disjoint for several reasons. Primarily, this is the
intent of the intercommunicators --- to provide a communicator for
communication between disjoint groups. This is reflected in the
definition of MPI_INTERCOMM_MERGE, which allows the user to
control the ranking of the processes in the created intracommunicator;
this ranking makes little sense if the groups are not disjoint. In
addition, the natural extension of collective operations to
intercommunicators makes the most sense when
the groups are disjoint.
( End of advice to users.)
All inter-communicator constructors are blocking and require that the local
and remote groups be disjoint in order to avoid deadlock.
with
Advice to users.