All such examples can be expressed with MPI_WIN_BARRIER.
POST-START-COMPLETE-WAIT is for application that do not want
to fully synchronize like with a barrier, e.g. asymmetric examples
as Lyndon noticed and symmetric double buffering examples
as Example 5.11 on page 107
> In the above example the two sets of functions are nested, which
> is needed if both processes need to do put and gets in the same
> epoch. Those who do not have shared memory might do the
> transfer at the complete call and send data requested by get back
> in the wait call. This will cause the above example and all the
> examples given in the chapter to deadlock.
No, the progress rule in Section 5.6.2 says on page 112
very clear that the example should not deadlock, otherwise
the implementation is wrong.
Rolf Rabenseifner (Computer Center )
Rechenzentrum Universitaet Stuttgart (University of Stuttgart)
Allmandring 30 Phone: ++49 711 6855530
D-70550 Stuttgart 80 FAX: ++49 711 6787626