TARDIS: Task-level Access Race Detection by Intersecting Sets

Weixing Ji,Michael L. Scott
2013-01-01
Abstract:A data race detector aids in the debugging of parallel programs, and may help to ensure determinism in a language that also excludes synchronization races. Most existing race detectors use shadow memory to track references to shared data on the fly. An attractive alternative, particularly in languages with constrained, split-merge parallelism, is to record access sets in each concurrent task, and intersect these sets at merge points. In comparison to shadow-memory based race detectors, access-set based detection has the potential to significantly improve locality and reduce per-access overhead. We have implemented an access-set based data race detector, TARDIS, in the context of a deterministic parallel Ruby extension. TARDIS runs in parallel. For our deterministic language, it is also precise: it finds all data races for a given program on a given input. On a set of six parallel benchmarks, TARDIS is slightly slower than the stateof-the-art SPD3 shadow-memory based race detector in two cases, but faster in the other four—by as much as 3.75 . Its memory consumption is also comparable to—and often better than—that of SPD3. Given these encouraging results, we suggest directions for future development of access-set based data race detectors.
What problem does this paper attempt to address?