[Mpi3-rma] Lock/Unlock semantics

Torsten Hoefler htor at illinois.edu
Mon Mar 5 13:08:26 CST 2012

> 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 think you're correct (D'oh). I would assume that the locks match in
reverse order (like a stack, i.e., the last unlock matches the last

> 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.

All the Best,

### qreharg rug ebs fv crryF ------------- http://www.unixer.de/ -----
Torsten Hoefler         | Performance Modeling and Simulation Lead
Blue Waters Directorate | University of Illinois (UIUC)
1205 W Clark Street     | Urbana, IL, 61801
NCSA Building           | +01 (217) 244-7736

More information about the mpiwg-rma mailing list