NAME
MMPPIIIInntteerrccoommmmccrreeaattee - Creates an intercommuncator from two intracommu-
nicators. SSYYNNTTAAXX CC SSyynnttaaxx#include
int MPIIntercommcreate(MPIComm localcomm, int localleader, MPIComm peercomm, int remoteleader, int tag, MPIComm *newintercomm) FFoorrttrraann SSyynnttaaxx INCLUDE 'mpif.h' MPIINTERCOMMCREATE(LOCALCOMM, LOCALLEADER, PEERCOMM,REMOTELEADER, TAG, NEWINTERCOMM, IERROR)
INTEGER LOCALCOMM, LOCALLEADER, PEERCOMM, REMOTELEADERINTEGER TAG, NEWINTERCOMM, IERROR
CC++++ SSyynnttaaxx#include
Intercomm Intracomm::Createintercomm(int localleader, const Comm& peercomm, int remoteleader, int tag) const IINNPPUUTT PPAARRAAMMTTEERRSS localcomm The communicator containing the process that initiates theinter-communication (handle).
localleader Rank of local group leader in localcomm (integer). peercomm "Peer" communicator; significant only at the localleader (handle). remoteleader Rank of remote group leader in peercomm; significant only at the localleader (integer). tag Message tag used to identify new intercommunicator (integer). OOUUTTPPUUTT PPAARRAAMMEETTEERRSS newintercomm Created intercommunicator (handle).IERROR Fortran only: Error status (integer).
DESCRIPTION
This call creates an intercommunicator. It is collective over the union of the local and remote groups. Processes should provide identical localcomm and localleader arguments within each group. Wildcards are not permitted for remoteleader, localleader, and tag.This call uses point-to-point communication with communicator
peercomm, and with tag tag between the leaders. Thus, care must be taken that there be no pending communication on peercomm that could interfere with this communication.If multiple MPIIntercommcreates are being made, they should use dif-
ferent tags (more precisely, they should ensure that the local and remote leaders are using different tags for each MPIintercommcreate). NNOOTTEESS We recommend using a dedicated peer communicator, such as a duplicate of MPICOMMWORLD, to avoid trouble with peer communicators. The MPI 1.1 Standard contains two mutually exclusive comments on the input intracommunicators. One says that their repective groups must be disjoint; the other that the leaders can be the same process. After some discussion by the MPI Forum, it has been decided that the groups must be disjoint. Note that the rreeaassoonn given for this in the standard is nnoott the reason for this choice; rather, the ootthheerr operations on intercommunicators (like MPIIntercommmerge ) do not make sense if the groups are not disjoint. EERRRROORRSS Almost all MPI routines return an error value; C routines as the valueof the function and Fortran routines in the last argument. C++ func-
tions do not return errors. If the default error handler is set toMPI::ERRORSTHROWEXCEPTIONS, then on error the C++ exception mechanism
will be used to throw an MPI:Exception object. Before the error value is returned, the current MPI error handler is called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed withMPICommseterrhandler; the predefined error handler MPIERRORSRETURN
may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.SEE ALSO
MPIIntercommmerge MPICommfree MPICommremotegroup MPICommremotesize Open MPI 1.2 September 2006 MPIIntercommcreate(3OpenMPI)