1. BQ: A Lock-Free Queue with Batching
- Author
-
Yossi Lev, Gal Milman, Erez Petrank, Victor Luchangco, and Alex Kogan
- Subjects
Multi-core processor ,Linearizability ,Computer science ,Concurrent data structure ,020207 software engineering ,0102 computer and information sciences ,02 engineering and technology ,Parallel computing ,Data structure ,01 natural sciences ,Computer Science Applications ,Computational Theory and Mathematics ,010201 computation theory & mathematics ,Hardware and Architecture ,Modeling and Simulation ,0202 electrical engineering, electronic engineering, information engineering ,Non-blocking algorithm ,Concurrent computing ,Performance improvement ,Queue ,Software - Abstract
Concurrent data structures provide fundamental building blocks for concurrent programming. Standard concurrent data structures may be extended by allowing a sequence of operations to be submitted as a batch for later execution. A sequence of such operations can then be executed more efficiently than the standard execution of one operation at a time. In this article, we develop a novel algorithmic extension to the prevalent FIFO queue data structure that exploits such batching scenarios. An implementation in C++ on a multicore demonstrates significant performance improvement of more than an order of magnitude (depending on the batch lengths and the number of threads) compared to previous queue implementations.
- Published
- 2022