Blame www/www3/MPI_Intercomm_merge.html

Packit Service c5cf8c
Packit Service c5cf8c
<HTML>
Packit Service c5cf8c
<HEAD>
Packit Service c5cf8c
<META NAME="GENERATOR" CONTENT="DOCTEXT">
Packit Service c5cf8c
<TITLE>MPI_Intercomm_merge</TITLE>
Packit Service c5cf8c
</HEAD>
Packit Service c5cf8c
<BODY BGCOLOR="FFFFFF">
Packit Service c5cf8c

MPI_Intercomm_merge

Packit Service c5cf8c
Creates an intracommuncator from an intercommunicator 
Packit Service c5cf8c

Synopsis

Packit Service c5cf8c
Packit Service c5cf8c
int MPI_Intercomm_merge(MPI_Comm intercomm, int high, MPI_Comm * newintracomm)
Packit Service c5cf8c
Packit Service c5cf8c

Input Parameters

Packit Service c5cf8c
Packit Service c5cf8c
intercomm
Intercommunicator (handle)
Packit Service c5cf8c
Packit Service c5cf8c
high
Used to order the groups within comm (logical)
Packit Service c5cf8c
when creating the new communicator.  This is a boolean value; the group
Packit Service c5cf8c
that sets high true has its processes ordered after the group that sets
Packit Service c5cf8c
this value to false.  If all processes in the intercommunicator provide
Packit Service c5cf8c
the same value, the choice of which group is ordered first is arbitrary.
Packit Service c5cf8c
Packit Service c5cf8c

Packit Service c5cf8c

Output Parameters

Packit Service c5cf8c
Packit Service c5cf8c
newintracomm
Created intracommunicator (handle)
Packit Service c5cf8c
Packit Service c5cf8c

Packit Service c5cf8c

Notes

Packit Service c5cf8c
While all processes may provide the same value for the <tt>high</tt> parameter,
Packit Service c5cf8c
this requires the MPI implementation to determine which group of
Packit Service c5cf8c
processes should be ranked first.
Packit Service c5cf8c

Packit Service c5cf8c

Thread and Interrupt Safety

Packit Service c5cf8c

Packit Service c5cf8c
This routine is thread-safe.  This means that this routine may be
Packit Service c5cf8c
safely used by multiple threads without the need for any user-provided
Packit Service c5cf8c
thread locks.  However, the routine is not interrupt safe.  Typically,
Packit Service c5cf8c
this is due to the use of memory allocation routines such as <tt>malloc
Packit Service c5cf8c
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
Packit Service c5cf8c

Packit Service c5cf8c

Notes for Fortran

Packit Service c5cf8c
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
Packit Service c5cf8c
an additional argument <tt>ierr</tt> at the end of the argument list.  <tt>ierr
Packit Service c5cf8c
</tt>is an integer and has the same meaning as the return value of the routine
Packit Service c5cf8c
in C.  In Fortran, MPI routines are subroutines, and are invoked with the
Packit Service c5cf8c
<tt>call</tt> statement.
Packit Service c5cf8c

Packit Service c5cf8c
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
Packit Service c5cf8c
</tt>in Fortran.
Packit Service c5cf8c

Packit Service c5cf8c

Algorithm

Packit Service c5cf8c
    Packit Service c5cf8c

    Packit Service c5cf8c
  1. Allocate contexts
  2. Packit Service c5cf8c
  3. Local and remote group leaders swap high values
  4. Packit Service c5cf8c
  5. Determine the high value.
  6. Packit Service c5cf8c
  7. Merge the two groups and make the intra-communicator
  8. Packit Service c5cf8c
    Packit Service c5cf8c

    Packit Service c5cf8c

    Packit Service c5cf8c

    Errors

    Packit Service c5cf8c

    Packit Service c5cf8c
    All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
    Packit Service c5cf8c
    C routines as the value of the function and Fortran routines in the last
    Packit Service c5cf8c
    argument.  Before the value is returned, the current MPI error handler is
    Packit Service c5cf8c
    called.  By default, this error handler aborts the MPI job.  The error handler
    Packit Service c5cf8c
    may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
    Packit Service c5cf8c
    <tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
    Packit Service c5cf8c
    RMA windows).  The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
    Packit Service c5cf8c
    its use is deprecated.  The predefined error handler
    Packit Service c5cf8c
    <tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
    Packit Service c5cf8c
    Note that MPI does not guarentee that an MPI program can continue past
    Packit Service c5cf8c
    an error; however, MPI implementations will attempt to continue whenever
    Packit Service c5cf8c
    possible.
    Packit Service c5cf8c

    Packit Service c5cf8c
    Packit Service c5cf8c
    MPI_SUCCESS
    No error; MPI routine completed successfully.
    Packit Service c5cf8c
    Packit Service c5cf8c
    Packit Service c5cf8c
    MPI_ERR_COMM
    Invalid communicator. A common error is to use a null
    Packit Service c5cf8c
    communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
    Packit Service c5cf8c
    Packit Service c5cf8c
    Packit Service c5cf8c
    MPI_ERR_INTERN
    This error is returned when some part of the MPICH
    Packit Service c5cf8c
    implementation is unable to acquire memory.  
    Packit Service c5cf8c
    Packit Service c5cf8c

    Packit Service c5cf8c

    See Also

    Packit Service c5cf8c
     MPI_Intercomm_create, MPI_Comm_free
    Packit Service c5cf8c

    Packit Service c5cf8c
    </BODY></HTML>