LC/DC: Lockless Containers and Data Concurrency a Novel Nonblocking Container Library for Multicore Applications

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 templat...

Full description

Bibliographic Details
Main Authors: Damian Dechev, Pierre Laborde, Steven D. Feldman
Format: Article
Language:English
Published: IEEE 2013-01-01
Series:IEEE Access
Subjects:
Online Access:https://ieeexplore.ieee.org/document/6603321/
id doaj-c57259eb005243b7b6e97d8b5fc9cf4a
record_format Article
spelling doaj-c57259eb005243b7b6e97d8b5fc9cf4a2021-03-29T19:29:20ZengIEEEIEEE Access2169-35362013-01-01162564510.1109/ACCESS.2013.22825006603321LC/DC: Lockless Containers and Data Concurrency a Novel Nonblocking Container Library for Multicore ApplicationsDamian Dechev0Pierre Laborde1Steven D. Feldman2Sandia National Laboratories, Livermore, CA, USADepartment of Electrical Engineering and Computer Science, University of Central Florida, Orlando, FL, USADepartment of Electrical Engineering and Computer Science, University of Central Florida, Orlando, FL, USAExploiting 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 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 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.https://ieeexplore.ieee.org/document/6603321/Nonblockingdata containerlibraryconcurrencyparallelismdata structures
collection DOAJ
language English
format Article
sources DOAJ
author Damian Dechev
Pierre Laborde
Steven D. Feldman
spellingShingle Damian Dechev
Pierre Laborde
Steven D. Feldman
LC/DC: Lockless Containers and Data Concurrency a Novel Nonblocking Container Library for Multicore Applications
IEEE Access
Nonblocking
data container
library
concurrency
parallelism
data structures
author_facet Damian Dechev
Pierre Laborde
Steven D. Feldman
author_sort Damian Dechev
title LC/DC: Lockless Containers and Data Concurrency a Novel Nonblocking Container Library for Multicore Applications
title_short LC/DC: Lockless Containers and Data Concurrency a Novel Nonblocking Container Library for Multicore Applications
title_full LC/DC: Lockless Containers and Data Concurrency a Novel Nonblocking Container Library for Multicore Applications
title_fullStr LC/DC: Lockless Containers and Data Concurrency a Novel Nonblocking Container Library for Multicore Applications
title_full_unstemmed LC/DC: Lockless Containers and Data Concurrency a Novel Nonblocking Container Library for Multicore Applications
title_sort lc/dc: lockless containers and data concurrency a novel nonblocking container library for multicore applications
publisher IEEE
series IEEE Access
issn 2169-3536
publishDate 2013-01-01
description 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 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 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.
topic Nonblocking
data container
library
concurrency
parallelism
data structures
url https://ieeexplore.ieee.org/document/6603321/
work_keys_str_mv AT damiandechev lcdclocklesscontainersanddataconcurrencyanovelnonblockingcontainerlibraryformulticoreapplications
AT pierrelaborde lcdclocklesscontainersanddataconcurrencyanovelnonblockingcontainerlibraryformulticoreapplications
AT stevendfeldman lcdclocklesscontainersanddataconcurrencyanovelnonblockingcontainerlibraryformulticoreapplications
_version_ 1724196082118819840