Data-Race Detection in Multi-Threaded Programs
Data race detection is a critical aspect of ensuring the reliability and correctness of multi-threaded programs. A data race occurs when two or more threads access shared memory simultaneously, at least one of the accesses is a write, and there is no synchronization mechanism to regulate these accesses. This review explores the methodologies employed in data race detection, focusing on static and dynamic approaches. Static data race detection analyzes the program code without execution, leveraging models, heuristics, and formal methods to identify potential races. Dynamic data race detection, on the other hand, involves runtime monitoring to detect races in actual executions. While static methods provide comprehensive coverage, they often suffer from false positives and scalability issues. Conversely, dynamic methods yield precise results for the executed paths but fail to guarantee coverage across all program paths. This paper presents a detailed comparison of these techniques, highlighting their strengths, limitations, and hybrid solutions that integrate static and dynamic approaches for enhanced detection capabilities. By reviewing recent advancements and challenges in data race detection, this study aims to provide researchers and practitioners with a clear understanding of the state-of-the-art techniques and insights into future research directions in this vital domain.
Authors
- Ameena K. Ashraf
Institutions
- Cochin University of Science and Technology (IN)
Publication Details
- Published
- 2025-05-23
- DOI
- https://doi.org/10.1109/iccc64910.2025.11077320
- Primary Topic
- Parallel Computing and Optimization Techniques
- Type
- article
- Field-Weighted Citation Impact
- 0.00