dwww Home | Manual pages | Find package

MPI_Comm_create_group(3)           Open MPI           MPI_Comm_create_group(3)

NAME
       MPI_Comm_create_group - Creates a new communicator.

SYNTAX
C Syntax
       #include <mpi.h>
       int MPI_Comm_create_group(MPI_Comm comm, MPI_Group group, int tag, MPI_Comm *newcomm)

Fortran Syntax
       USE MPI
       ! or the older form: INCLUDE 'mpif.h'
       MPI_COMM_CREATE_GROUP(COMM, GROUP, TAG, NEWCOMM, IERROR)
            INTEGER   COMM, GROUP, TAG, NEWCOMM, IERROR

Fortran 2008 Syntax
       USE mpi_f08
       MPI_Comm_create_group(comm, group, tag, newcomm, ierror)
            TYPE(MPI_Comm), INTENT(IN) :: comm
            TYPE(MPI_Group), INTENT(IN) :: group
            INTEGER, INTENT(IN) :: tag
            TYPE(MPI_Comm), INTENT(OUT) :: newcomm
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

INPUT PARAMETERS
       comm      Communicator (handle).

       group     Group, which is a subset of the group of comm (handle).

       tag       Tag (integer).

OUTPUT PARAMETERS
       newcomm   New communicator (handle).

       IERROR    Fortran only: Error status (integer).

DESCRIPTION
       MPI_Comm_create_group   is   similar   to   MPI_Comm_create;   however,
       MPI_Comm_create must be called by all processes in the group  of  comm,
       whereas MPI_Comm_create_group must be called by all processes in group,
       which is a subgroup of the group of comm.  In  addition,  MPI_Comm_cre-
       ate_group  requires  that  comm  is an intracommunicator. MPI_Comm_cre-
       ate_group returns a new intracommunicator, newcomm, for which the group
       argument  defines the communication group. No cached information propa-
       gates from comm to newcomm.

       Each process must provide a group argument that is a  subgroup  of  the
       group  associated  with  comm; this could be MPI_GROUP_EMPTY. If a non-
       empty group is specified, then all processes in that  group  must  call
       the  function,  and each of these processes must provide the same argu-
       ments, including a group that contains the same members with  the  same
       ordering.  Otherwise the call is erroneous. If the calling process is a
       member of the group given as the group argument, then newcomm is a com-
       municator with group as its associated group. If the calling process is
       not a member of group, e.g., group is MPI_GROUP_EMPTY, then the call is
       a local operation and MPI_COMM_NULL is returned as newcomm.

NOTES
       MPI_Comm_create_group  provides a means of making a subset of processes
       for the purpose of separate MIMD computation, with separate  communica-
       tion  space. newcomm, which is created by MPI_Comm_create_group, can be
       used in subsequent calls to MPI_Comm_create_group (or other  communica-
       tor constructors) to further subdivide a computation into parallel sub-
       computations. A more general service is provided by MPI_Comm_split.

ERRORS
       Almost all MPI routines return an error value; C routines as the  value
       of the function and Fortran routines in the last argument.

       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  with
       MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
       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
       MPI_Comm_create

4.1.2                            Nov 24, 2021         MPI_Comm_create_group(3)

Generated by dwww version 1.14 on Mon Jan 27 11:00:47 CET 2025.