Fast Implementations of Shared Objects using Fetch & Add

In this paper we present efficient implementations of shared objects from Fetch&Add registers. We present the first snapshot implementation which has time complexity O(1) for both scan and update. Using this implementation we can directly obtain an active set with constant time complexity for all three operations, join, leave and getSet. We also present the first universal construction which has time complexity O(1). This construction proves that a lower bound of Ω(log n) on the number of LL/SC registers required for implementing a universal object can be beaten if we employ a constant number of Fetch&Add registers (in addition to one LL/SC register). Our algorithms improve upon existing implementations of these objects and they have several interesting implications on the complexity of many known implementations of other shared objects that use any of the implemented objects as one of their components (i.e., existing partial snapshot algorithms and others). Despite these implications, they are themselves very simple and some of them are of practical interest in several cases.

[1]  Panagiota Fatourou,et al.  The RedBlue Adaptive Universal Constructions , 2009, DISC.

[2]  Prasad Jayanti,et al.  A lower bound on the local time complexity of universal constructions , 1998, PODC '98.

[3]  Nir Shavit,et al.  Atomic snapshots of shared memory , 1990, JACM.

[4]  Yehuda Afek,et al.  Long-lived adaptive collect with applications , 1999, 40th Annual Symposium on Foundations of Computer Science (Cat. No.99CB37039).

[5]  Prasad Jayanti,et al.  A time complexity lower bound for randomized implementations of some shared objects , 1998, PODC '98.

[6]  Ophir Rachman,et al.  Atomic snapshots using lattice agreement , 1995, Distributed Computing.

[7]  Rachid Guerraoui,et al.  Partial snapshot objects , 2008, SPAA '08.

[8]  Maurice Herlihy,et al.  Wait-free data structures in the asynchronous PRAM model , 1990, SPAA '90.

[9]  Wei Chen,et al.  Linear-Time Snapshot Using Multi-writer Multi-reader Registers , 1994, WDAG.

[10]  Hagit Attiya,et al.  Atomic snapshots in O(n log n) operations , 1993, PODC '93.

[11]  Prasad Jayanti An optimal multi-writer snapshot algorithm , 2005, STOC '05.

[12]  Sam Toueg,et al.  Time and Space Lower Bounds for Nonblocking Implementations , 2000, SIAM J. Comput..

[13]  Kevin P. McAuliffe,et al.  The IBM Research Parallel Processor Prototype (RP3): Introduction and Architecture , 1985, ICPP.

[14]  Faith Ellen,et al.  Space-optimal multi-writer snapshot objects are slow , 2002, PODC '02.

[15]  J. T. Robinson,et al.  Parallel Quicksort Using Fetch-and-Add , 1990, IEEE Trans. Computers.

[16]  Maurice Herlihy,et al.  A methodology for implementing highly concurrent data objects , 1993, TOPL.

[17]  Amos Israeli,et al.  Linear-time snapshot implementations in unbalanced systems , 1995, Mathematical systems theory.

[18]  Faith Ellen,et al.  A tight time lower bound for space-optimal implementations of multi-writer snapshots , 2003, STOC '03.

[19]  Panagiota Fatourou,et al.  Time-optimal, space-efficient single-scanner snapshots & multi-scanner snapshots using CAS , 2007, PODC '07.

[20]  Faith Ellen,et al.  Time-space tradeoffs for implementations of snapshots , 2006, STOC '06.

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

[22]  Faith Ellen How Hard Is It to Take a Snapshot? , 2005, SOFSEM.

[23]  Panagiota Fatourou,et al.  Single-scanner multi-writer snapshot implementations are fast! , 2006, PODC '06.

[24]  Yehuda Afek,et al.  Wait-free made fast , 1995, STOC '95.

[25]  Gadi Taubenfeld Synchronization Algorithms and Concurrent Programming , 2006 .

[26]  James H. Anderson,et al.  Composite registers , 1990, PODC '90.

[27]  Prasad Jayanti f-arrays: implementation and applications , 2002, PODC '02.

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

[29]  Nian-Feng Tzeng,et al.  Distributing Hot-Spot Addressing in Large-Scale Multiprocessors , 1987, IEEE Transactions on Computers.

[30]  James H. Anderson,et al.  Multi-writer composite registers , 1994, Distributed Computing.

[31]  Dimitrios S. Nikolopoulos,et al.  A quantitative architectural evaluation of synchronization algorithms and disciplines on ccNUMA systems: the case of the SGI Origin2000 , 1999, ICS '99.

[32]  Prasad Jayanti,et al.  Efficient Wait-Free Implementation of Multiword LL/SC Variables , 2005, 25th IEEE International Conference on Distributed Computing Systems (ICDCS'05).

[33]  Mark Moir,et al.  Universal Constructions for Large Objects , 1995, IEEE Trans. Parallel Distributed Syst..

[34]  Michel Raynal,et al.  Help When Needed, But No More: Efficient Read/Write Partial Snapshot , 2009, DISC.

[35]  Mark Moir,et al.  Universal constructions for multi-object operations , 1995, PODC '95.