๐ค AI Summary
To address the high false-positive rate and insufficient precision in detecting element-level data races in OpenMP parallel programs, this paper proposes a constraint-solvingโbased static analysis method. We formulate array index expressions symbolically as SMT satisfiability problems for the first time, enabling precise modeling of memory access conflicts under arbitrarily complex indexing patterns; further, we integrate OpenMP semantics to enable accurate reasoning about thread behavior and synchronization constructs. Unlike dynamic analysis, our approach incurs no runtime overhead, and unlike conventional static tools, it avoids coarse-grained abstractions that degrade precision. Evaluated on a standard benchmark suite, our method reduces false positives by 62% compared to OpenRace and LLOV. Moreover, it successfully identifies several fine-grained array data races in real-world applications, demonstrating both effectiveness and practical utility.
๐ Abstract
Detection of data races is one of the most important tasks for verifying the correctness of OpenMP parallel codes. Two main models of analysis tools have been proposed for detecting data races: dynamic analysis and static analysis. Dynamic analysis tools such as Intel Inspector, ThreadSanitizer, and Helgrind+ can detect data races through the execution of the source code. However, source code execution can be quite time-consuming when analyzing computation-intensive programs. There are also static analysis tools such as LLOV, and OpenRace. These tools statically detect data races using algorithms that often do not require the execution of the source code. Although both detection techniques assist programmers in analyzing the correct behavior of OpenMP programs, they still produce false positives that often defeat the purpose of applying automatic analysis. Therefore, we present DRS-oNE (Data Race Satisfiability on aNy Element), a data race detector that detects data races on array elements by solving for race constraints with the Z3 SMT solver.