RMR-efficient implementations of comparison primitives using read and write operations

We consider asynchronous multiprocessors where processes communicate only by reading or writing shared memory. We show how to implement consensus, compare-and-swap and other comparison primitives, as well as load-linked/store-conditional (LL/SC) using only a constant number of remote memory references (RMRs), in both the cache-coherent and the distributed-shared-memory models of such multiprocessors. Our implementations are blocking, rather than wait-free: they ensure progress provided all processes that invoke the implemented primitive are live. Our results imply that any algorithm using read and write operations, and either comparison primitives or LL/SC, can be simulated by an algorithm that uses read and write operations only, with at most a constant-factor increase in RMR complexity.

[1]  Mark Moir Practical implementations of non-blocking synchronization primitives , 1997, PODC '97.

[2]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[3]  David A. Patterson,et al.  Computer Organization and Design, Fourth Edition, Fourth Edition: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design) , 2008 .

[4]  James H. Anderson,et al.  A fast, scalable mutual exclusion algorithm , 1995, Distributed Computing.

[5]  Edsger W. Dijkstra,et al.  Solution of a problem in concurrent programming control , 1965, CACM.

[6]  Thomas E. Anderson,et al.  The Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors , 1990, IEEE Trans. Parallel Distributed Syst..

[7]  Travis S. Craig Queuing spin lock algorithms to support timing predictability , 1993, 1993 Proceedings Real-Time Systems Symposium.

[8]  Hyonho Lee Transformations of Mutual Exclusion Algorithms from the Cache-Coherent Model to the Distributed Shared Memory Model , 2005, 25th IEEE International Conference on Distributed Computing Systems (ICDCS'05).

[9]  Wojciech M. Golab,et al.  An O(1) RMRs Leader Election Algorithm , 2010, SIAM J. Comput..

[10]  Maurice Herlihy,et al.  On the space complexity of randomized synchronization , 1993, PODC '93.

[11]  David A. Patterson,et al.  Computer Organization & Design: The Hardware/Software Interface , 1993 .

[12]  Danny Hendler,et al.  Tight RMR lower bounds for mutual exclusion and other problems , 2008, STOC '08.

[13]  Maurice Herlihy,et al.  Contention in shared memory algorithms , 1993, JACM.

[14]  James H. Anderson,et al.  A generic local-spin fetch-and-phi-based mutual exclusion algorithm , 2007, J. Parallel Distributed Comput..

[15]  Nancy A. Lynch,et al.  An Ω (n log n) lower bound on the cost of mutual exclusion , 2006, PODC '06.

[16]  Prasad Jayanti A Complete and Constant Time Wait-Free Implementation of CAS from LL/SC and Vice Versa , 1998, DISC.

[17]  Wojciech M. Golab A complexity separation between the cache-coherent and distributed shared memory models , 2011, PODC '11.

[18]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.

[19]  Mark Moir,et al.  On the Uncontended Complexity of Consensus , 2003, DISC.

[20]  Nancy A. Lynch,et al.  An introduction to input/output automata , 1989 .

[21]  Wojciech M. Golab,et al.  Closing the complexity gap between FCFS mutual exclusion and mutual exclusion , 2010, Distributed Computing.

[22]  Wojciech M. Golab,et al.  An O(1) RMRs leader election algorithm , 2006, PODC '06.

[23]  James H. Anderson,et al.  An improved lower bound for the time complexity of mutual exclusion , 2001, PODC '01.

[24]  Robert Cypher The communication requirements of mutual exclusion , 1995, SPAA '95.

[25]  Òòòðð,et al.  Shared-memory Mutual Exclusion: Major Research Trends Since 1986 , 1986 .

[26]  Wojciech M. Golab,et al.  Constant-RMR implementations of CAS and other synchronization primitives using read and write operations , 2007, PODC '07.