The Consistency Properties of a Scalable, Concurrent Queue

This paper presents a concurrent FIFO queue. The queue is designed to support high, scalable performance through both partitioning its representation , and the removal of locks. A proof of the consistency properties of the queue operations is developed, based on the Linearizability consistency condition. Linearizability is of interest because of its compositional properties , providing a strong foundation for the construction of reliable concurrent systems. The FIFO queue is proven to be linearizable with high probability and is therefore termed-linearizable. This suprising result demonstrates the importance of verification in the implementation of reliable abstractions. The scalable throughput performance of the queue is demonstrated through a simulation study.

[1]  Henri E. Bal,et al.  Orca: A Language For Parallel Programming of Distributed Systems , 1992, IEEE Trans. Software Eng..

[2]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[3]  Ralph Grishman,et al.  The NYU Ultracomputer—Designing an MIMD Shared Memory Parallel Computer , 1983, IEEE Transactions on Computers.

[4]  Dennis Shasha,et al.  Concurrent set manipulation without locking , 1988, PODS '88.

[5]  Peter G. Harrison,et al.  Parallel Programming Using Skeleton Functions , 1993, PARLE.

[6]  Leslie G. Valiant,et al.  A Combining Mechanism for Parallel Computers , 1992, Heinz Nixdorf Symposium.

[7]  Maurice Herlihy,et al.  A Methodology for Implementing Highly Concurrent Data Objects , 1992, OPSR.

[8]  Theodore Johnson,et al.  A Nonblocking Algorithm for Shared Queues Using Compare-and-Swap , 1994, IEEE Trans. Computers.

[9]  Carla Schlatter Ellis,et al.  Concurrent Search and Insertion in AVL Trees , 1980, IEEE Transactions on Computers.

[10]  Murray Cole,et al.  Algorithmic Skeletons: Structured Management of Parallel Computation , 1989 .

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

[12]  Jerome A. Feldman,et al.  Programming Distributed Systems , 1978, ACM Annual Conference.

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

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

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

[16]  Thomas H. Dunigan KENDALL SQUARE MULTIPROCESSOR: EARLY EXPERIENCES AND PERFORMANCE , 1992 .

[17]  J. Leroy Folks,et al.  Ideas of statistics , 1982 .

[18]  Nancy A. Lynch,et al.  Are wait-free algorithms fast? , 1994, JACM.

[19]  Jeannette M. Wing,et al.  Testing and Verifying Concurrent Objects , 1993, J. Parallel Distributed Comput..

[20]  Martin Dyer,et al.  Parallel algorithm design on the WPRAM model , 1995 .

[21]  A. Gottleib,et al.  The nyu ultracomputer- designing a mimd shared memory parallel computer , 1983 .