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

  
 
  

home | help
MPI_Fetch_and_op(3)		       MPI		     MPI_Fetch_and_op(3)

NAME
     MPI_Fetch_and_op -  Perform one-sided read-modify-write.

SYNOPSIS
     int MPI_Fetch_and_op(const void *origin_addr, void *result_addr,
     MPI_Datatype datatype, int target_rank,
     MPI_Aint target_disp, MPI_Op op, MPI_Win win)

INPUT PARAMETERS
     origin_addr
	    - initial address of buffer (choice)
     datatype
	    -  datatype of the entry in origin, result, and target buffers (han-
	    dle)
     target_rank
	    - rank of target (non-negative integer)
     target_disp
	    - displacement from start of window to beginning  of  target  buffer
	    (non-negative integer)
     op     - reduce operation (handle)
     win    - window object (handle)

OUTPUT PARAMETERS
     result_addr
	    - initial address of result buffer (choice)

NOTES
     This operations is atomic with respect to other "accumulate" operations.

     The generic functionality of MPI_Get_accumulate might limit the performance
     of  fetch-and-increment  or  fetch-and-add calls that might be supported by
     special hardware operations.  MPI_Fetch_and_op thus allows for a  fast  im-
     plementation  of a commonly used subset of the functionality of MPI_Get_ac-
     cumulate .

     The origin and result buffers (origin_addr and result_addr)  must	be  dis-
     joint.   Any  of  the  predefined	operations  for  MPI_Reduce , as well as
     MPI_NO_OP or MPI_REPLACE , can be specified as op;  user-defined  functions
     cannot be used. The datatype argument must be a predefined datatype.

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_DISP
	    -
     MPI_ERR_OP
	    - Invalid operation.  MPI operations (objects of type MPI_Op )  must
	    either  be one of the predefined operations (e.g., MPI_SUM ) or cre-
	    ated with MPI_Op_create .

     MPI_ERR_RANK
	    - Invalid source or destination rank.  Ranks must  be  between  zero
	    and  the  size  of	the communicator minus one; ranks in a receive (
	    MPI_Recv  ,  MPI_Irecv  ,  MPI_Sendrecv  ,	 etc.)	 may   also   be
	    MPI_ANY_SOURCE .

     MPI_ERR_TYPE
	    -  Invalid datatype argument.  Additionally, this error can occur if
	    an uncommitted MPI_Datatype (see MPI_Type_commit ) is used in a com-
	    munication call.
     MPI_ERR_WIN
	    - Invalid MPI window object
     MPI_ERR_OTHER
	    - Other error; use MPI_Error_string to get	more  information  about
	    this error code.

SEE ALSO
     MPI_Get_accumulate

				    4/10/2026		     MPI_Fetch_and_op(3)

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

home | help