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)
NAME | SYNOPSIS | INPUT PARAMETERS | OUTPUT PARAMETERS | NOTES | NOTES FOR FORTRAN | ERRORS | SEE ALSO
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>
