Publication:
Detecting semantic violations of lock-free data structures through C++ contracts

Loading...
Thumbnail Image
Identifiers
Publication date
2019-03-26
Defense date
Advisors
Tutors
Journal Title
Journal ISSN
Volume Title
Publisher
Springer Nature
Impact
Google Scholar
Export
Research Projects
Organizational Units
Journal Issue
Abstract
The use of synchronization mechanisms in multithreaded applications is essential on shared-memory multi-core architectures. However, debugging parallel applications to avoid potential failures, such as data races or deadlocks, can be challenging. Race detectors are key to spot such concurrency bugs; nevertheless, if lock-free data structures are used, these may emit a significant number of false positives. In this paper, we present a framework for semantic violation detection of lock-free data structures which makes use of contracts, a novel feature of the upcoming C++20, and a customized version of the ThreadSanitizer race detector. We evaluate the detection accuracy of the framework in terms of false positives and false negatives leveraging some synthetic benchmarks which make use of the SPSC and MPMC lock-free queue structures from the Boost C++ library. Thanks to this framework, we are able to check the correct use of lock-free data structures, thus reducing the number of false positives.
Description
ASPIDE: Exascale programIng models for extreme data processing
Keywords
Parallel programming, Semantic violation detection, C++ contracts, Lock-free data structures
Bibliographic citation
The journal of supercomputing, 26 March 2019, 22 pp.