[mpich2-dev] mpich 1.1 beta: details of MPI_Win_fence semantics

Douglas Miller dougmill at us.ibm.com
Tue Apr 14 09:52:58 CDT 2009


Some new tests in mpich 1.1 beta use MPI_Win_fence in an unexpected (to me)
fashion. They do the following:

[fence - NOPRECEDE]
[RMA operations]
[fence - 0]
[RMA operations]
[fence - 0]
[RMA operations]
[fence - NOSUCCEED]

I was assuming that MPI_Win_fence was *either* starting or completing an
epoch (i.e. there were always matched-pairs of fence calls), not both. But
this usage implies that there is an expectation that a single call to fence
can *both* end an epoch and start a new epoch. The specification is vague
at best.

The problem with the above usage is that the middle calls to fence create a
situation where the implementation cannot be certain whether it is
operating within a fence epoch or not. I'm not sure how to implement any
sort of error checking to cover this case, as the user could follow a fence
with either RMA calls or some other synchronization primitives (POST-START
or LOCK) or even protected local access. It was my understanding that the
ASSERT flags were meant to be hints to the implementation and not required
by the caller for proper operation.

Can you help clear this up?  Is the test wrong or are we actually required
to handle this situation?

thanks,

doug miller



More information about the mpich2-dev mailing list