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

  
 
  

home | help
MPI_Comm_create_keyval(3)	       MPI	       MPI_Comm_create_keyval(3)

NAME
     MPI_Comm_create_keyval -  Create a new attribute key

SYNOPSIS
     int MPI_Comm_create_keyval(MPI_Comm_copy_attr_function *comm_copy_attr_fn,
     MPI_Comm_delete_attr_function *comm_delete_attr_fn,
     int *comm_keyval, void *extra_state)

INPUT PARAMETERS
     comm_copy_attr_fn
	    - copy callback function for comm_keyval (function)
     comm_delete_attr_fn
	    - delete callback function for comm_keyval (function)
     extra_state
	    - extra state for callback function (None)

OUTPUT PARAMETERS
     comm_keyval
	    - key value for future access (integer)

NOTES
     Key values are global (available for any and all communicators).

     Default copy and delete functions are available.  These are
     MPI_COMM_NULL_COPY_FN
	    - empty copy function
     MPI_COMM_NULL_DELETE_FN
	    - empty delete function
     MPI_COMM_DUP_FN
	    - simple dup function

	    There are subtle differences between C and Fortran that require that
	    the copy_fn be written in the same language from which MPI_Comm_cre-
	    ate_keyval	is called.  This should not be a problem for most users;
	    only programmers using both Fortran and C in the same  program  need
	    to be sure that they follow this rule.

RETURN VALUE FROM ATTRIBUTE CALLBACKS
     The MPI-2 versions of the attribute callbacks should return either MPI_SUC-
     CESS  on  success	or  a valid MPI error code or class on failure.  The MPI
     standard is ambiguous on this point, but as  MPI-2  provides  the	routines
     MPI_Add_error_class  and  MPI_Add_error_code  that allow the user to define
     and use MPI error codes and classes.

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_OTHER
	    -  Other  error;  use MPI_Error_string to get more information about
	    this error code.

SEE ALSO
     MPI_Comm_free_keyval

				    4/10/2026	       MPI_Comm_create_keyval(3)

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

home | help