Dynamic Data-Race Detection through the Fine-Grained Lens

07/08/2021
by   Rucha Kulkarni, et al.
0

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.

READ FULL TEXT
POST COMMENT

Comments

There are no comments yet.

Authors

page 3

page 9

page 11

page 13

page 21

page 23

page 25

page 27

04/30/2020

The Complexity of Dynamic Data Race Prediction

Writing concurrent programs is notoriously hard due to scheduling non-de...
10/30/2020

Optimal Prediction of Synchronization-Preserving Races

Concurrent programs are notoriously hard to write correctly, as scheduli...
06/02/2020

The Fine-Grained Complexity of Andersen's Pointer Analysis

Pointer analysis is one of the fundamental problems in static program an...
06/02/2020

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

Pointer analysis is one of the fundamental problems in static program an...
12/08/2021

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

Existing data race detectors for task-based programs incur significant r...
01/19/2021

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...
08/06/2020

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.