Abstract
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^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^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.
- Stanford large network dataset collection. http://snap.stanford. edu/data/index.html. Accessed: Sept. 2014.Google Scholar
- Y. Afek, M. Hakimi, and A. Morrison. Fast and scalable rendezvousing. Distributed Computing, 26(4):243–269, 2013.Google Scholar
Digital Library
- D. Alistarh, J. Aspnes, S. Gilbert, and R. Guerraoui. The complexity of renaming. In 52nd Annual IEEE Symposium on Foundations of Computer Science (FOCS), pages 718–727, Oct. 2011. Google Scholar
Digital Library
- D. Alistarh, J. Kopinsky, J. Li, and N. Shavit. Spraylist. https: //github.com/jkopinsky/SprayList.Google Scholar
- D. Alistarh, J. Kopinsky, J. Li, and N. Shavit. The spraylist: A scalable relaxed priority queue. Technical Report MSR-TR-2014-16, December 2014.Google Scholar
- D. Basin, R. Fan, I. Keidar, O. Kiselov, and D. Perelman. Cafe: Scalable task pools with adjustable fairness and contention. In Proceedings of the 25th International Conference on Distributed Computing, DISC’11, pages 475–488, Berlin, Heidelberg, 2011. Springer-Verlag. Google Scholar
Digital Library
- A. Braginsky and E. Petrank. A lock-free b+tree. In 24th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA ’12, Pittsburgh, PA, USA, pages 58–67, 2012. Google Scholar
Digital Library
- G. S. Brodal, J. L. Träff, and C. D. Zaroliagis. A parallel priority queue with constant time operations. J. Parallel Distrib. Comput., 49(1):4– 21, 1998. Google Scholar
Digital Library
- I. Calciu, H. Mendes, and M. Herlihy. The Adaptive Priority Queue with Elimination and Combining. ArXiv e-prints, Aug. 2014.Google Scholar
- T. Crain, V. Gramoli, and M. Raynal. A speculation-friendly binary search tree. ACM SIGPLAN Notices, 47(8):161–170, 2012. Google Scholar
Digital Library
- N. Deo and S. Prasad. Parallel heap: An optimal parallel priority queue. The Journal of Supercomputing, 6(1):87–98, Mar. 1992. Google Scholar
Digital Library
- D. Dice, Y. Lev, and M. Moir. Scalable statistics counters. In 25th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA ’13, Montreal, QC, Canada, pages 43–52, 2013. Google Scholar
Digital Library
- B. Drawert, S. Engblom, and A. Hellander. Urdme: a modular framework for stochastic simulation of reaction-transport processes in complex geometries. BMC Systems Biology, 6(76), 2012.Google Scholar
- F. Ellen, D. Hendler, and N. Shavit. On the inherent sequentiality of concurrent objects. SIAM J. Comput., 41(3):519–536, 2012.Google Scholar
- K. Fraser. Practical lock-freedom. PhD thesis, PhD thesis, Cambridge University Computer Laboratory, 2003. Also available as Technical Report UCAM-CL-TR-579, 2004.Google Scholar
- T. A. Henzinger, C. M. Kirsch, H. Payer, A. Sezgin, and A. Sokolova. Quantitative relaxation of concurrent data structures. In Proceedings of the 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL ’13, pages 317–328, New York, NY, USA, 2013. ACM. Google Scholar
Digital Library
- M. Herlihy and N. Shavit. The art of multiprocessor programming. Morgan Kaufmann, 2008. Google Scholar
Digital Library
- M. Herlihy, N. Shavit, and M. Tzafrir. Hopscotch hashing. In Proceedings of the 22nd International Symposium on Distributed Computing, DISC 2008, Arcachon, France, pages 350–364, 2008. Google Scholar
Digital Library
- R. M. Karp and Y. Zhang. Parallel algorithms for backtrack search and branch-and-bound. J. ACM, 40(3):765–789, 1993. Google Scholar
Digital Library
- C. E. Leiserson, R. L. Rivest, C. Stein, and T. H. Cormen. Introduction to algorithms. The MIT press, 2001.Google Scholar
- J. Lindén and B. Jonsson. A skiplist-based concurrent priority queue with minimal memory contention. In Principles of Distributed Systems, pages 206–220. Springer, 2013. Google Scholar
Digital Library
- I. Lotan and N. Shavit. Skiplist-based concurrent priority queues. In Parallel and Distributed Processing Symposium, 2000. IPDPS 2000. Proceedings. 14th International, pages 263–268. IEEE, 2000. Google Scholar
Digital Library
- D. Nguyen, A. Lenharth, and K. Pingali. A lightweight infrastructure for graph analytics. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, SOSP ’13, pages 456–471, New York, NY, USA, 2013. ACM. Google Scholar
Digital Library
- W. Pugh. Skip lists: a probabilistic alternative to balanced trees. Communications of the ACM, 33(6):668–676, 1990. Google Scholar
Digital Library
- W. Pugh. Concurrent maintenance of skip lists. 1998.Google Scholar
- P. Sanders. Randomized priority queues for fast parallel access. Journal Parallel and Distributed Computing, Special Issue on Parallel and Distributed Data Structures, 49:86–97, 1998. Google Scholar
Digital Library
- N. Shavit. Data structures in the multicore age. Commun. ACM, 54(3):76–84, 2011. Google Scholar
Digital Library
- H. Sundell and P. Tsigas. Fast and lock-free concurrent priority queues for multi-thread systems. Journal of Parallel and Distributed Computing, 65(5):609–627, 2005. Google Scholar
Digital Library
- M. Wimmer, D. Cederman, F. Versaci, J. L. Träff, and P. Tsigas. Data structures for task-based priority scheduling. In Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP 2014), 2014. Google Scholar
Digital Library
- M. Wimmer, G. J., J. L. Träff, and P. Tsigas. The lock-free k-lsm relaxed priority queue. In Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP 2015), 2015. Google Scholar
Digital Library
Index Terms
The SprayList: a scalable relaxed priority queue
Recommendations
The SprayList: a scalable relaxed priority queue
PPoPP 2015: Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel ProgrammingHigh-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 ...
LOFT: lock-free transactional data structures
PPoPP '19: Proceedings of the 24th Symposium on Principles and Practice of Parallel ProgrammingConcurrent data structures are widely used in modern multicore architectures, providing atomicity (linearizability) for each concurrent operation. However, it is often desirable to execute several operations on multiple data structures atomically. We ...
A Skiplist-Based Concurrent Priority Queue with Minimal Memory Contention
OPODIS 2013: Proceedings of the 17th International Conference on Principles of Distributed Systems - Volume 8304Priority queues are fundamental to many multiprocessor applications. Several priority queue algorithms based on skiplists have been proposed, as skiplists allow concurrent accesses to different parts of the data structure in a simple way. However, for ...






Comments