[Mpi3-rma] Lock/Unlock semantics

Barrett, Brian W bwbarre at sandia.gov
Mon Mar 5 10:55:48 CST 2012

All -

I'm finally doing the implementation of MPI-3 RMA in Open MPI using our
generic low level driver (rather than directly on Portals4) and have a
question about semantics.  It appears to me that process B could attempt
to lock process A multiple times simultaneously, including a mix of
EXCLUSIVE and SHARED locks.  Does this appear correct to others?  If not,
what in the standard prevents such behavior?  If it is correct, how are
UNLOCK calls matched to the various LOCK calls?

I didn't really run into this in the Portals4 implementation, because LOCK
calls blocking in that implementation.  I never even thought about the
potential for issue, because there was no lock ordering issue; one could
only be in one lock type simultaneously.  And I'm not sure I fully
comprehended the potential problem.  However, in the generic
implementation, I've made lock non-blocking and now I run into this odd
semantics situation.



  Brian W. Barrett
  Dept. 1423: Scalable System Software
  Sandia National Laboratories

More information about the mpiwg-rma mailing list