Fast and scalable rendezvousing

In an asymmetric rendezvous system, such as an unfair synchronous queue or an elimination array, threads of two types, consumers and producers, show up and are matched each with a unique thread of the other type. Here we present new highly scalable, high throughput asymmetric rendezvous systems that outperform prior synchronous queue and elimination array implementations under both symmetric and asymmetric workloads (more operations of one type than the other). Based on this rendezvous system, we also construct a highly scalable and competitive stack implementation.

[1]  William N. Scherer,et al.  Nonblocking Concurrent Data Structures with Condition Synchronization , 2004, DISC.

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

[3]  Nir Shavit,et al.  Flat combining and the synchronization-parallelism tradeoff , 2010, SPAA '10.

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

[5]  William N. Scherer,et al.  Scalable synchronous queues , 2006, PPoPP '06.

[6]  Nir Shavit,et al.  Diffracting trees , 1996, TOCS.

[7]  Mark Moir,et al.  Using elimination to implement scalable and lock-free FIFO queues , 2005, SPAA '05.

[8]  William N. Scherer,et al.  A Scalable Elimination-based Exchange Channel , 2005 .

[9]  Panagiota Fatourou,et al.  A highly-efficient wait-free universal construction , 2011, SPAA '11.

[10]  N. Shavit,et al.  Di racting Trees , 1996 .

[11]  Nir Shavit,et al.  Scalable Flat-Combining Based Synchronous Queues , 2010, DISC.

[12]  Nir Shavit,et al.  Elimination Trees and the Construction of Pools and Stacks , 1997, Theory of Computing Systems.

[13]  Maged M. Michael Hazard pointers: safe memory reclamation for lock-free objects , 2004, IEEE Transactions on Parallel and Distributed Systems.

[14]  Nir Shavit,et al.  Elimination trees and the construction of pools and stacks: preliminary version , 1995, SPAA '95.

[15]  Panagiota Fatourou,et al.  Revisiting the combining synchronization technique , 2012, PPoPP '12.

[16]  Nir Shavit,et al.  Combining Funnels: A Dynamic Approach to Software Combining , 2000, J. Parallel Distributed Comput..

[17]  Nir Shavit,et al.  Scalable Producer-Consumer Pools Based on Elimination-Diffraction Trees , 2010, Euro-Par.

[18]  Michael Merritt,et al.  Computing with Infinitely Many Processes , 2000, DISC.

[19]  Yehuda Afek,et al.  Fast and Scalable Rendezvousing , 2011, DISC.

[20]  Lingjia Tang,et al.  The impact of memory subsystem resource sharing on datacenter applications , 2011, 2011 38th Annual International Symposium on Computer Architecture (ISCA).

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

[22]  Kathryn S. McKinley,et al.  Hoard: a scalable memory allocator for multithreaded applications , 2000, SIGP.

[23]  Nir Shavit,et al.  A scalable lock-free stack algorithm , 2004, SPAA '04.

[24]  Gregory R. Andrews,et al.  Concurrent programming - principles and practice , 1991 .

[25]  David R. Hanson,et al.  C Interfaces and Implementations: Techniques for Creating Reusable Software , 1996 .