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 in order to avoid deadlock. with All inter-communicator constructors are blocking and require that the local and remote groups be disjoint.
[] Advice to users.
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.)