LC/DC: Lockless Containers and Data Concurrency a Novel Nonblocking Container Library for Multicore Applications
LC/DC: Lockless Containers and Data Concurrency a Novel Nonblocking Container Library for Multicore Applications
Blog Article
Exploiting the parallelism in multiprocessor systems is a major challenge in modern computer science.Multicore programming demands a change in the way we design and use fundamental data structures.The standard collection of data structures and algorithms in C++11 is the sequential standard template library (STL).
In this paper, we present their vision for the theory and practice for the design and implementation of a collection of highly concurrent fundamental data structures for multiprocessor application development with associated programming interface and advanced optimization support.Specifically, the proposed approach will provide a familiar, easy-to-use, and composable interface, similar to that of C++ STL.Each container type Steam Kit will be enhanced with internal support for nonblocking synchronization of its data access, thereby providing better safety and performance than traditional blocking synchronization by: 1) eliminating hazards such as deadlock, livelock, and priority inversion and 2) by being highly scalable in supporting large numbers of threads.
The new library, lockless containers/data concurrency, will provide algorithms for handling fundamental computations in multithreaded contexts, and will incorporate these into libraries with familiar Tie-Dye Long-Sleeve look and feel.The proposed approach will provide an immense boost in performance and software reuse, consequently productivity, for developers of scientific and systems applications, which are predominantly in C/C++.STL is widely used and a concurrent replacement library will have an immediate practical relevance and a significant impact on a variety of parallel programming domains including simulation, massive data mining, computational biology, financial engineering, and embedded control systems.
As a proof-of-concept, this paper discusses the first design and implementation of a wait-free hash table.