Provided by: openmpi-doc_4.1.6-7ubuntu2_all bug

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_create_group requires that comm is an
       intracommunicator. MPI_Comm_create_group returns a new intracommunicator, newcomm, for  which  the  group
       argument defines the communication group. No cached information propagates 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 arguments, 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 communicator 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 communication space. newcomm, which is created by MPI_Comm_create_group, can
       be used in subsequent calls to MPI_Comm_create_group (or  other  communicator  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.6                                             Sep 30, 2023                          MPI_Comm_create_group(3)