Lock-free Concurrent Data Structures
Daniel Cederman, Anders Gidenstam, Phuong Ha, H{\aa}kan, Sundell, Marina Papatriantafilou, Philippas Tsigas

TL;DR
This paper provides an overview of lock-free concurrent data structures, emphasizing their importance in parallel programming for efficient data sharing and manipulation, and aims to educate readers on their design and usage.
Contribution
It offers a comprehensive background and intuition on lock-free data structures, facilitating understanding and practical application in parallel programming.
Findings
Highlights the significance of lock-free data structures in parallel computing
Provides foundational knowledge for designing efficient concurrent algorithms
Aims to bridge theory and practice for programmers in concurrent environments
Abstract
Concurrent data structures are the data sharing side of parallel programming. Data structures give the means to the program to store data, but also provide operations to the program to access and manipulate these data. These operations are implemented through algorithms that have to be efficient. In the sequential setting, data structures are crucially important for the performance of the respective computation. In the parallel programming setting, their importance becomes more crucial because of the increased use of data and resource sharing for utilizing parallelism. The first and main goal of this chapter is to provide a sufficient background and intuition to help the interested reader to navigate in the complex research area of lock-free data structures. The second goal is to offer the programmer familiarity to the subject that will allow her to use truly concurrent methods.
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Parallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems
