Abstract
Multithreaded programs are prone to concurrency errors such as deadlocks, race conditions and atomicity violations. These errors are notoriously difficult to detect due to the non-deterministic nature of concurrent software running on multicore hardware. Data races result from the concurrent access of shared data by multiple threads and can result in unexpected program behaviors. Main dynamic data race detection techniques in the literature are happens-before and lockset algorithms which suffer from high execution time and memory overhead, miss many data races or produce a high number of false alarms. Our goal is to improve the performance of dynamic data race detection, while at the same time improving its accuracy by generating fewer false alarms. We develop a hybrid data race detection algorithm that is a combination of the happens-before and lockset algorithms in a tool. Rather than focusing on individual memory accesses by each thread, we focus on sequence of memory accesses by each thread, called a segment. This allows us to improve the performance of data race detection. We implement several optimizations on our hybrid data race detector and compare our technique with traditional happens-before and lockset detectors. The experiments are performed with C/C++ multithreaded benchmarks using Pthreads library from PARSEC suite and large applications such as Apache web server. Our experiments showed that our hybrid detector is 15
Keywords
MSC
68-N19
Cite this article
@article{cai-3421,
author = {Alper Sen and Onder Kalaci},
title = {Hybrid Data Race Detection for Multicore Software},
journal = {Computing and Informatics},
volume = {37},
number = {1},
pages = {186--212},
year = {2018},
issn = {1335-9150},
doi = {10.4149/cai_2018_1_186}
}
TY - JOUR AU - Alper Sen AU - Onder Kalaci TI - Hybrid Data Race Detection for Multicore Software JO - Computing and Informatics VL - 37 IS - 1 SP - 186 EP - 212 PY - 2018 SN - 1335-9150 DO - 10.4149/cai_2018_1_186 UR - https://doi.org/10.4149/cai_2018_1_186 KW - Software testing and debugging KW - multithreaded programs KW - data race KW - concurrency KW - happens-before KW - lockset ER -
Sen, A., & Kalaci, O. (2018). Hybrid Data Race Detection for Multicore Software. Computing and Informatics, 37(1), 186–212. https://doi.org/10.4149/cai_2018_1_186