DOE PAGES title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: An Efficient Wait-Free Vector

Abstract

The vector is a fundamental data structure, which provides constant-time access to a dynamically-resizable range of elements. Currently, there exist no wait-free vectors. The only non-blocking version supports only a subset of the sequential vector API and exhibits significant synchronization overhead caused by supporting opposing operations. Since many applications operate in phases of execution, wherein each phase only a subset of operations are used, this overhead is unnecessary for the majority of the application. To address the limitations of the non-blocking version, we present a new design that is wait-free, supports more of the operations provided by the sequential vector, and provides alternative implementations of key operations. These alternatives allow the developer to balance the performance and functionality of the vector as requirements change throughout execution. Compared to the known non-blocking version and the concurrent vector found in Intel’s TBB library, our design outperforms or provides comparable performance in the majority of tested scenarios. Over all tested scenarios, the presented design performs an average of 4.97 times more operations per second than the non-blocking vector and 1.54 more than the TBB vector. In a scenario designed to simulate the filling of a vector, performance improvement increases to 13.38 and 1.16more » times. This work presents the first ABA-free non-blocking vector. Finally, unlike the other non-blocking approach, all operations are wait-free and bounds-checked and elements are stored contiguously in memory.« less

Authors:
 [1];  [1];  [2]
  1. Univ. of Central Florida, Orlando, FL (United States)
  2. Univ. of Central Florida, Orlando, FL (United States); Sandia National Lab. (SNL-CA), Livermore, CA (United States)
Publication Date:
Research Org.:
Sandia National Lab. (SNL-NM), Albuquerque, NM (United States)
Sponsoring Org.:
USDOE National Nuclear Security Administration (NNSA)
OSTI Identifier:
1427291
Report Number(s):
SAND-2015-2906J
Journal ID: ISSN 1045-9219; 583297
Grant/Contract Number:  
AC04-94AL85000
Resource Type:
Accepted Manuscript
Journal Name:
IEEE Transactions on Parallel and Distributed Systems
Additional Journal Information:
Journal Volume: 27; Journal Issue: 3; Journal ID: ISSN 1045-9219
Publisher:
IEEE
Country of Publication:
United States
Language:
English
Subject:
97 MATHEMATICS AND COMPUTING; vector; non-blocking; wait-free; concurrent; resizable; ABA

Citation Formats

Feldman, Steven, Valera-Leon, Carlos, and Dechev, Damian. An Efficient Wait-Free Vector. United States: N. p., 2016. Web. doi:10.1109/TPDS.2015.2417887.
Feldman, Steven, Valera-Leon, Carlos, & Dechev, Damian. An Efficient Wait-Free Vector. United States. https://doi.org/10.1109/TPDS.2015.2417887
Feldman, Steven, Valera-Leon, Carlos, and Dechev, Damian. Tue . "An Efficient Wait-Free Vector". United States. https://doi.org/10.1109/TPDS.2015.2417887. https://www.osti.gov/servlets/purl/1427291.
@article{osti_1427291,
title = {An Efficient Wait-Free Vector},
author = {Feldman, Steven and Valera-Leon, Carlos and Dechev, Damian},
abstractNote = {The vector is a fundamental data structure, which provides constant-time access to a dynamically-resizable range of elements. Currently, there exist no wait-free vectors. The only non-blocking version supports only a subset of the sequential vector API and exhibits significant synchronization overhead caused by supporting opposing operations. Since many applications operate in phases of execution, wherein each phase only a subset of operations are used, this overhead is unnecessary for the majority of the application. To address the limitations of the non-blocking version, we present a new design that is wait-free, supports more of the operations provided by the sequential vector, and provides alternative implementations of key operations. These alternatives allow the developer to balance the performance and functionality of the vector as requirements change throughout execution. Compared to the known non-blocking version and the concurrent vector found in Intel’s TBB library, our design outperforms or provides comparable performance in the majority of tested scenarios. Over all tested scenarios, the presented design performs an average of 4.97 times more operations per second than the non-blocking vector and 1.54 more than the TBB vector. In a scenario designed to simulate the filling of a vector, performance improvement increases to 13.38 and 1.16 times. This work presents the first ABA-free non-blocking vector. Finally, unlike the other non-blocking approach, all operations are wait-free and bounds-checked and elements are stored contiguously in memory.},
doi = {10.1109/TPDS.2015.2417887},
journal = {IEEE Transactions on Parallel and Distributed Systems},
number = 3,
volume = 27,
place = {United States},
year = {Tue Mar 01 00:00:00 EST 2016},
month = {Tue Mar 01 00:00:00 EST 2016}
}

Journal Article:
Free Publicly Available Full Text
Publisher's Version of Record

Citation Metrics:
Cited by: 5 works
Citation information provided by
Web of Science

Save / Share: