Preliminary Version Space-and Time-adaptive Nonblocking Algorithms

We explore techniques for designing nonblocking algorithms that do not require advance knowledge of the number of threads that participate, whose time complexity and space consumption both adapt to various measures (rather than being based on predefined worst-case scenarios), and that can continue to reclaim memory even after thread failures. The techniques we introduce can be implemented using widely available hardware synchronization primitives. We present our techniques in the context of solutions to the well-known Collect problem. We also explain how our techniques can be exploited to achieve other results with similar properties, such as long-lived renaming and dynamic memory management for nonblocking data structures. In addition to the algorithmic techniques we introduce, we also clarify and generalize previous properties used to characterize measures of an algorithm’s “adaptivity”.

[1]  Mark Moir,et al.  Wait-Free Algorithms for Fast, Long-Lived Renaming , 1995, Sci. Comput. Program..

[2]  Mark Moir,et al.  Lock-free reference counting , 2002 .

[3]  Nir Shavit,et al.  Optimal time randomized consensus—making resilient algorithms fast in practice , 1991, SODA '91.

[4]  David Dice,et al.  Mostly lock-free malloc , 2002, MSP/ISMM.

[5]  Mark Moir,et al.  Using local-spin k-exclusion algorithms to improve wait-free object implementations , 1997, Distributed Computing.

[6]  Hagit Attiya,et al.  Achievable cases in an asynchronous environment , 1987, 28th Annual Symposium on Foundations of Computer Science (sfcs 1987).

[7]  Nir Shavit,et al.  DCAS-based concurrent deques , 2000, SPAA '00.

[8]  Nir Shavit,et al.  Even Better DCAS-Based Concurrent Deques , 2000, DISC.

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

[10]  Maurice Herlihy,et al.  Dynamic-sized lockfree data structures , 2002 .

[11]  Hagit Attiya,et al.  An adaptive collect algorithm with applications , 2002, Distributed Computing.

[12]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[13]  Mark Moir,et al.  DCAS-based concurrent deques supporting bulk allocation , 2002 .

[14]  Maged M. Michael,et al.  Simple, fast, and practical non-blocking and blocking concurrent queue algorithms , 1996, PODC '96.

[15]  Hagit Attiya,et al.  Long-lived renaming made adaptive , 1999, PODC '99.

[16]  Maged M. Michael Safe memory reclamation for dynamic lock-free objects using atomic reads and writes , 2002, PODC '02.

[17]  Mark Moir,et al.  Long-lived renaming made fast , 1995, PODC '95.