TL;DR
This paper introduces OBatcher, an OCaml library that simplifies the creation of efficient batch-parallel concurrent data structures, achieving high throughput and scalability by leveraging implicit batching and systematic strategies.
Contribution
It presents a systematic methodology and a practical library for designing and implementing batch-parallel data structures that outperform traditional lock-based methods.
Findings
Batch-parallel structures outperform lock-based implementations in throughput.
The library enables scalable performance on multi-core processors.
Implicit batching simplifies multi-threaded programming for concurrent data structures.
Abstract
Design of an efficient thread-safe concurrent data structure is a balancing act between its implementation complexity and performance. Lock-based concurrent data structures, which are relatively easy to derive from their sequential counterparts and to prove thread-safe, suffer from poor throughput under even light multi-threaded workload. At the same time, lock-free concurrent structures allow for high throughput, but are notoriously difficult to get right and require careful reasoning to formally establish their correctness. We explore a solution to this conundrum based on batch parallelism, an approach for designing concurrent data structures via a simple insight: efficiently processing a batch of a priori known operations in parallel is easier than optimising performance for a stream of arbitrary asynchronous requests. Alas, batch-parallel structures have not seen wide practical…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
