Dynamic Data-Race Detection through the Fine-Grained Lens

by   Rucha Kulkarni, et al.

Data races are among the most common bugs in concurrency. The standard approach to data-race detection is via dynamic analyses, which work over executions of concurrent programs, instead of the program source code. The rich literature on the topic has created various notions of dynamic data races, which are known to be detected efficiently when certain parameters (e.g., number of threads) are small. However, the fine-grained complexity of all these notions of races has remained elusive, making it impossible to characterize their trade-offs between precision and efficiency. In this work we establish several fine-grained separations between many popular notions of dynamic data races. The input is an execution trace with N events, T threads and L locks. Our main results are as follows. First, we show that happens-before (HB) races can be detected in O(N·min(T, L)) time, improving over the standard O(N· T) bound when L=o(T). Moreover, we show that even reporting an HB race that involves a read access is hard for 2-orthogonal vectors (2-OV). This is the first rigorous proof of the conjectured quadratic lower-bound in detecting HB races. Second, we show that the recently introduced synchronization-preserving races are hard to detect for OV-3 and thus have a cubic lower bound, when T=Ω(N). This establishes a complexity separation from HB races which are known to be less expressive. Third, we show that lock-cover races are hard for 2-OV, and thus have a quadratic lower-bound, even when T=2 and L = ω(log N). The similar notion of lock-set races is known to be detectable in O(N· L) time, and thus we achieve a complexity separation between the two. Moreover, we show that lock-set races become hitting-set (HS)-hard when L=Θ(N), and thus also have a quadratic lower bound, when the input is sufficiently complex.



There are no comments yet.


page 3

page 9

page 11

page 13

page 21

page 23

page 25

page 27


The Complexity of Dynamic Data Race Prediction

Writing concurrent programs is notoriously hard due to scheduling non-de...

Optimal Prediction of Synchronization-Preserving Races

Concurrent programs are notoriously hard to write correctly, as scheduli...

The Fine-Grained Complexity of Andersen's Pointer Analysis

Pointer analysis is one of the fundamental problems in static program an...

The Fine-Grained and Parallel Complexity of Andersen's Pointer Analysis

Pointer analysis is one of the fundamental problems in static program an...

Efficient Data Race Detection of Async-Finish Programs Using Vector Clocks

Existing data race detectors for task-based programs incur significant r...

Translating Hausdorff is Hard: Fine-Grained Lower Bounds for Hausdorff Distance Under Translation

Computing the similarity of two point sets is a ubiquitous task in medic...

Fine-Grained Complexity of Regular Expression Pattern Matching and Membership

The currently fastest algorithm for regular expression pattern matching ...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.