[mpiwg-rma] Synchronization on shared memory windows

Jeff Hammond jeff.science at gmail.com
Tue Feb 4 10:46:28 CST 2014


Using 2-sided with window memory is no different from load-store.  You
need to synchronize to maintain consistency if you are doing both RMA
and non-RMA on the window.  If you merely use the WIN calls to
allocate memory and only access the private copy, you shouldn't need
any sync.

I have not explored if your use of active-target sync is valid or not
because I think these modes are almost entirely useless and pay almost
no attention to their semantics.  This is a matter of opinion that no
one else is required to share, of course.

Jeff

On Tue, Feb 4, 2014 at 10:03 AM, Rolf Rabenseifner <rabenseifner at hlrs.de> wrote:
> Dear all,
>
> I tested MPI-3.0 1-sided synchronization on shared memory windows.
> A lot didn't worked as I expected:
>
>  - assertions fail with MPI_Win_fence
>    (there is no restriction defined on MPI-3.0 p452:8-19),
>
>  - Post-Start-Complete-Wait fully fails
>    (compare MPI-3.0 p410:16-19, especially the ref to Sect.11.5),
>
>  - and MPI_Free_mem also fails for the shared memory windows
>    (compare MI-3.0 p409:23-24, especially that MPI_FREE_MEM
>    is mentioned here).
>
> Attached are some files:
> - halo_1sided_put_win_alloc_20.f90
>
>    This is the basis and works.
>    It is with normal (distributed) windows.
>
> - halo_1sided_put_win_alloc_shared_20.f90
>
>    It is the first shared memory example.
>    It causes several errors with the test on our Cray system:
>     - The assertions on MPI_WIN_FENCE do not work
>     - The MPI_FREE_MEM does not work for the shared buffers
>
>    Is my program wrong? it is a simple left and right
>    1-dim halo exchange.
>
> - halo_1sided_put_win_alloc_shared_20_w-a-cray.f90
>
>    This is a workaround that works on our Cray:
>     - assertions MPI_MODE_NOPRECEDE and MPI_MODE_NOSUCCEED removed
>     - MPI_FREE_MEM removed
>
> - halo_1sided_put_win_alloc_shared_pscw_20.f90
>
>    With Post-Start-Complete-Wait, nothing works!
>    No work-around.
>
> - halo_1sided_put_win_alloc_shared_othersync_20.f90
>
>    In this example, I fully substituted the RMA synchronization
>    by point-to-point synchronization with Irecv, send and waitall.
>    Is this allowed?
>    Was it intended?
>    Is there any wording about in MPI-3.0?
>    Will we have any wording in MPI-next? (3.1 or 4.0)?
>
> I hope, someone knows the answers.
>
> Best regards
> Rolf
>
> --
> Dr. Rolf Rabenseifner . . . . . . . . . .. email rabenseifner at hlrs.de
> High Performance Computing Center (HLRS) . phone ++49(0)711/685-65530
> University of Stuttgart . . . . . . . . .. fax ++49(0)711 / 685-65832
> Head of Dpmt Parallel Computing . . . www.hlrs.de/people/rabenseifner
> Nobelstr. 19, D-70550 Stuttgart, Germany . . . . (Office: Room 1.307)
>
> _______________________________________________
> mpiwg-rma mailing list
> mpiwg-rma at lists.mpi-forum.org
> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma



-- 
Jeff Hammond
jeff.science at gmail.com



More information about the mpiwg-rma mailing list