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

Institutions

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
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Data-Race Detection in Multi-Threaded Programs

Ameena K. Ashraf
Parallel Computing and Optimization Techniques
article

Data-Race Detection in Multi-Threaded Programs

Ameena K. Ashraf
article en

Abstract

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.

Cochin University of Science and Technology (IN)
Openalex Percentile: Top 80%
Parallel Computing and Optimization Techniques
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Data-Race Detection in Multi-Threaded Programs — Ameena K. Ashraf · (2025) | TGRS Research Map | TGRS