Open MPI logo

MPI_Win_fence(3) man page (version 1.3.4)

  |   Home   |   Support   |   FAQ   |  

« Return to documentation listing



NAME

       MPI_Win_fence - Synchronizes RMA calls on a window.

SYNTAX


C Syntax

       #include <mpi.h>
       int MPI_Win_fence(int assert, MPI_Win win)

Fortran Syntax

       INCLUDE 'mpif.h'
       MPI_WIN_FENCE(ASSERT, WIN, IERROR)
            INTEGER ASSERT, WIN, IERROR

C++ Syntax

       #include <mpi.h>
       void MPI::Win::Fence(int assert) const

INPUT PARAMETERS

       assert    Program assertion (integer).

       win       Window object (handle).

OUTPUT PARAMETER

       IERROR    Fortran only: Error status (integer).

DESCRIPTION

       MPI_Win_fence  synchronizes RMA calls on win. The call is collective on
       the group of win. All RMA operations on  win  originating  at  a  given
       process and started before the fence call will complete at that process
       before the fence call returns. They will be completed at  their  target
       before  the  fence  call  returns  at the target. RMA operations on win
       started by a process after the fence call  returns  will  access  their
       target  window  only  after MPI_Win_fence has been called by the target
       process.

       The call completes an RMA access epoch if it was  preceded  by  another
       fence  call and the local process issued RMA communication calls on win
       between these two calls. The call completes an RMA exposure epoch if it
       was  preceded by another fence call and the local window was the target
       of RMA accesses between these two calls. The call starts an RMA  access
       epoch  if it is followed by another fence call and by RMA communication
       calls issued between these two fence calls. The call starts an exposure
       epoch  if  it is followed by another fence call and the local window is
       the target of RMA accesses between these two  fence  calls.  Thus,  the
       fence call is equivalent to calls to a subset of post, start, complete,
       wait.

       A fence call usually entails a barrier synchronization: a process  com-
       pletes  a  call  to MPI_Win_fence only after all other processes in the
       group  have  entered  their  matching  call.   However,   a   call   to
       MPI_Win_fence that is known not to end any epoch (in particular, a call
       with assert = MPI_MODE_NOPRECEDE) does not necessarily act  as  a  bar-

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++ func-
       tions 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.

SEE ALSO

       MPI_Win_create MPI_Win_start MPI_Win_post MPI_Win_complete MPI_Win_wait

1.3.4                            Nov 11, 2009                 MPI_Win_fence(3)

« Return to documentation listing