Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
MPI_Comm_dup(3) 		       MPI			 MPI_Comm_dup(3)

NAME
     MPI_Comm_dup -  Duplicates an existing communicator

SYNOPSIS
     int MPI_Comm_dup(MPI_Comm comm, MPI_Comm *newcomm)

INPUT PARAMETERS
     comm   - communicator (handle)

OUTPUT PARAMETERS
     newcomm
	    - copy of comm (handle)

NOTES
     This routine is used to create a new communicator that has a new communica-
     tion context but contains the same group of processes as the input communi-
     cator.   Since  all  MPI  communication  is performed within a communicator
     (specifies as the group of processes plus the context), this  routine  pro-
     vides  an effective way to create a private communicator for use by a soft-
     ware module or library.  In  particular,  no  library  routine  should  use
     MPI_COMM_WORLD  as  the communicator; instead, a duplicate of a user-speci-
     fied communicator should always be used.  For more information,  see  Using
     MPI, 2nd edition.

     Because this routine essentially produces a copy of a communicator, it also
     copies any attributes that have been defined on the input communicator, us-
     ing  the attribute copy function specified by the copy_function argument to
     MPI_Keyval_create .  This is particularly useful for  (a)	attributes  that
     describe  some property of the group associated with the communicator, such
     as its interconnection topology and (b) communicators that are  given  back
     to  the user; the attributes in this case can track subsequent MPI_Comm_dup
     operations on this communicator.

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

NOTES FOR FORTRAN
     All  MPI  routines in Fortran (except for MPI_WTIME and MPI_WTICK ) have an
     additional argument ierr at the end of the argument list.	ierr is an inte-
     ger and has the same meaning as the return value of the routine in  C.   In
     Fortran, MPI routines are subroutines, and are invoked with the call state-
     ment.

     All  MPI  objects	(e.g.,	MPI_Datatype , MPI_Comm ) are of type INTEGER in
     Fortran.

ERRORS
     All MPI routines (except MPI_Wtime and MPI_Wtick ) return an error value; C
     routines as the value of the function and Fortran routines in the last  ar-
     gument.   Before  the  value  is returned, the current MPI error handler is
     called.  By default, this error handler aborts the MPI job.  The error han-
     dler may  be  changed  with  MPI_Comm_set_errhandler  (for  communicators),
     MPI_File_set_errhandler  (for  files),  and MPI_Win_set_errhandler (for RMA
     windows).	The MPI-1 routine MPI_Errhandler_set may be used but its use  is
     deprecated.   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; however, MPI implementations
     will attempt to continue whenever possible.

     MPI_SUCCESS
	    - No error; MPI routine completed successfully.
     MPI_ERR_ARG
	    - Invalid argument.  Some argument is invalid and is not  identified
	    by a specific error class (e.g., MPI_ERR_RANK ).
     MPI_ERR_COMM
	    -  Invalid communicator.  A common error is to use a null communica-
	    tor in a call (not even allowed in MPI_Comm_rank ).
     MPI_ERR_OTHER
	    - Other error; use MPI_Error_string to get	more  information  about
	    this error code.

SEE ALSO
     MPI_Comm_free,	MPI_Keyval_create,     MPI_Attr_put,	MPI_Attr_delete,
     MPI_Comm_create_keyval, MPI_Comm_set_attr, MPI_Comm_delete_attr

				    4/10/2026			 MPI_Comm_dup(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=MPI_Comm_dup&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help