MPI_Win_create(3) MPI MPI_Win_create(3) NAME MPI_Win_create - Create an MPI Window object for one-sided communication SYNOPSIS int MPI_Win_create(void *base, MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm, MPI_Win *win) int MPI_Win_create_c(void *base, MPI_Aint size, MPI_Aint disp_unit, MPI_Info info, MPI_Comm comm, MPI_Win *win) INPUT PARAMETERS base - initial address of window (choice) size - size of window in bytes (non-negative integer) disp_unit - local unit size for displacements, in bytes (positive integer) info - info argument (handle) comm - intra-communicator (handle) OUTPUT PARAMETERS win - window object (handle) NOTES The displacement unit argument is provided to facilitate address arithmetic in RMA operations: the target displacement argument of an RMA operation is scaled by the factor disp_unit specified by the target process, at window creation. The info argument provides optimization hints to the runtime about the ex- pected usage pattern of the window. The following info keys are predefined. no_locks - If set to true, then the implementation may assume that passive target synchronization (i.e., MPI_Win_lock , MPI_Win_lock_all ) will not be used on the given window. This implies that this window is not used for 3-party communication, and RMA can be implemented with no (less) asynchronous agent activity at this process. accumulate_ordering - Controls the ordering of accumulate operations at the target. The argument string should contain a comma-separated list of the follow- ing read/write ordering rules, where e.g. "raw" means read-after- write: "rar,raw,war,waw". accumulate_ops - If set to same_op, the implementation will assume that all concur- rent accumulate calls to the same target address will use the same operation. If set to same_op_no_op, then the implementation will as- sume that all concurrent accumulate calls to the same target address will use the same operation or MPI_NO_OP . This can eliminate the need to protect access for certain operation types where the hard- ware can guarantee atomicity. The default is same_op_no_op. mpi_accumulate_granularity - Controls the desired synchronization granularity for accumulate ops. It sets the size of memory range in bytes for which the MPI li- brary should acquire a synchronization primitive to ensure the atom- icity of updates. The default is 0 which let the MPI library decides the granularity. When the info hint is set to a positive value, the actual range of synchroniation is round-up to the next size that fits the Datatype used in the accumulate operation (see MPI standard 4.1). All processes in the group of a windows must set to the same value. 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_DISP - MPI_ERR_INFO - Invalid Info MPI_ERR_SIZE - MPI_ERR_OTHER - Other error; use MPI_Error_string to get more information about this error code. SEE ALSO MPI_Win_allocate MPI_Win_allocate_shared MPI_Win_create_dynamic MPI_Win_free 4/10/2026 MPI_Win_create(3)
NAME | SYNOPSIS | INPUT PARAMETERS | OUTPUT PARAMETERS | NOTES | THREAD AND INTERRUPT SAFETY | 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_Win_create_c&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
