ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



MPI_Win_create(3OpenMPI)                                                            MPI_Win_create(3OpenMPI)



NAME
       MPI_Win_create - One-sided MPI call that returns a window object for RMA operations.


SYNTAX
C Syntax
       #include <mpi.h>
       MPI_Win_create(void *base, MPI_Aint size, int disp_unit,
            MPI_Info info, MPI_Comm comm, MPI_Win *win)


Fortran Syntax (see FORTRAN 77 NOTES)
       INCLUDE 'mpif.h'
       MPI_WIN_CREATE(BASE, SIZE, DISP_UNIT, INFO, COMM, WIN, IERROR)
            <type> BASE(*)
            INTEGER(KIND=MPI_ADDRESS_KIND) SIZE
            INTEGER DISP_UNIT, INFO, COMM, WIN, IERROR


C++ Syntax
       #include <mpi.h>
       static MPI::Win MPI::Win::Create(const void* base,
            MPI::Aint size, int disp_unit, const
            MPI::Info& info, const MPI::Intracomm& comm)


INPUT PARAMETERS
       base      Initial address of window (choice).

       size      Size of window in bytes (nonnegative integer).

       disp_unit Local unit size for displacements, in bytes (positive integer).

       info      Info argument (handle).

       comm      Communicator (handle).


OUTPUT PARAMETERS
       win       Window object returned by the call (handle).

       IERROR    Fortran only: Error status (integer).


DESCRIPTION
       MPI_Win_create  is  a  one-sided  MPI  communication collective call executed by all processes in the
       group of comm. It returns a window object that can be used by these processes to perform  RMA  opera-tions. operations.
       tions. Each process specifies a window of existing memory that it exposes to RMA accesses by the pro-cesses processes
       cesses in the group of comm. The window consists of size bytes, starting at address base.  A  process
       may elect to expose no memory by specifying size = 0.

       If  the  base value used by MPI_Win_create was allocated by MPI_Alloc_mem, the size of the window can
       be no larger than the value set by the MPI_ALLOC_MEM function.

       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 following info key is supported:

       no_locks  If MPI_Win_lock is called on a window created with this info key, the call  will  fail.  If
                 this  info  key  is  present, it is assumed that the local window is never locked, allowing
                 several internal checks to be skipped, permitting a more efficient implementation.



NOTES
       Common choices for disp_unit are 1 (no scaling), and (in C syntax) sizeof(type), for  a  window  that
       consists  of  an array of elements of type type. The later choice will allow one to use array indices
       in RMA calls, and have those scaled correctly to byte displacements, even in a heterogeneous environ-ment. environment.
       ment.

       Use  memory allocated by MPI_Alloc_mem to guarantee properly aligned window boundaries (such as word,
       double-word, cache line, page frame, and so on).





FORTRAN 77 NOTES
       The MPI standard prescribes portable Fortran syntax for the SIZE argument only for Fortran  90.  FOR-TRAN FORTRAN
       TRAN 77 users may use the non-portable syntax

            INTEGER*MPI_ADDRESS_KIND SIZE

       where  MPI_ADDRESS_KIND  is a constant defined in mpif.h and gives the length of the declared integer
       in bytes.


ERRORS
       Almost all MPI routines return an error value; C routines as the value of the  function  and  Fortran
       routines  in  the  last argument. C++ functions do not return errors. If the default error handler is
       set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to  throw
       an MPI:Exception object.

       Before  the  error value is returned, the current MPI error handler is called. By default, this error
       handler aborts the MPI job, except for I/O function errors. The error handler  may  be  changed  with
       MPI_Comm_set_errhandler;  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.






Open MPI 1.2                                     March 2007                         MPI_Win_create(3OpenMPI)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.