The SprayList: a scalable relaxed priority queue

High-performance concurrent priority queues are essential for applications such as task scheduling and discrete event simulation. Unfortunately, even the best performing implementations do not scale past a number of threads in the single digits. This is because of the sequential bottleneck in access...

Full description

Bibliographic Details
Main Authors: Alistarh, Dan (Author), Kopinsky, Justin (Contributor), Li, Jerry Zheng (Contributor), Shavit, Nir N. (Contributor)
Other Authors: Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science (Contributor)
Format: Article
Language:English
Published: Association for Computing Machinery (ACM), 2016-02-02T13:02:12Z.
Subjects:
Online Access:Get fulltext
LEADER 02643 am a22003013u 4500
001 101058
042 |a dc 
100 1 0 |a Alistarh, Dan  |e author 
100 1 0 |a Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science  |e contributor 
100 1 0 |a Kopinsky, Justin  |e contributor 
100 1 0 |a Li, Jerry Zheng  |e contributor 
100 1 0 |a Shavit, Nir N.  |e contributor 
700 1 0 |a Kopinsky, Justin  |e author 
700 1 0 |a Li, Jerry Zheng  |e author 
700 1 0 |a Shavit, Nir N.  |e author 
245 0 0 |a The SprayList: a scalable relaxed priority queue 
260 |b Association for Computing Machinery (ACM),   |c 2016-02-02T13:02:12Z. 
856 |z Get fulltext  |u http://hdl.handle.net/1721.1/101058 
520 |a High-performance concurrent priority queues are essential for applications such as task scheduling and discrete event simulation. Unfortunately, even the best performing implementations do not scale past a number of threads in the single digits. This is because of the sequential bottleneck in accessing the elements at the head of the queue in order to perform a DeleteMin operation. In this paper, we present the SprayList, a scalable priority queue with relaxed ordering semantics. Starting from a non-blocking SkipList, the main innovation behind our design is that the DeleteMin operations avoid a sequential bottleneck by "spraying'' themselves onto the head of the SkipList list in a coordinated fashion. The spraying is implemented using a carefully designed random walk, so that DeleteMin returns an element among the first O(p log[superscript 3] p) in the list, with high probability, where p is the number of threads. We prove that the running time of a DeleteMin operation is O(log[superscript 3] p), with high probability, independent of the size of the list. Our experiments show that the relaxed semantics allow the data structure to scale for high thread counts, comparable to a classic unordered SkipList. Furthermore, we observe that, for reasonably parallel workloads, the scalability benefits of relaxation considerably outweigh the additional work due to out-of-order execution. 
520 |a National Science Foundation (U.S.) (Grant CCF-1217921) 
520 |a National Science Foundation (U.S.) (Grant CCF-1301926) 
520 |a National Science Foundation (U.S.) (Grant IIS-1447786) 
520 |a United States. Dept. of Energy (Grant ER26116/DE-SC0008923) 
520 |a Oracle Corporation 
520 |a Intel Corporation 
546 |a en_US 
655 7 |a Article 
773 |t Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP 2015)