Efficient data race detection for async-finish parallelism

A major productivity hurdle for parallel programming is the presence of data races . Data races can lead to all kinds of harmful program behaviors, including determinism violations and corrupted memory. However, runtime overheads of current dynamic data race detectors are still prohibitively large (...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Formal methods in system design Ročník 41; číslo 3; s. 321 - 347
Hlavní autoři: Raman, Raghavan, Zhao, Jisheng, Sarkar, Vivek, Vechev, Martin, Yahav, Eran
Médium: Journal Article
Jazyk:angličtina
Vydáno: Boston Springer US 01.12.2012
Témata:
ISSN:0925-9856, 1572-8102
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Popis
Shrnutí:A major productivity hurdle for parallel programming is the presence of data races . Data races can lead to all kinds of harmful program behaviors, including determinism violations and corrupted memory. However, runtime overheads of current dynamic data race detectors are still prohibitively large (often incurring slowdowns of 10× or more) for use in mainstream software development. In this paper, we present an efficient dynamic race detection algorithm that handles both the async-finish task-parallel programming model used in languages such as X10 and Habanero Java (HJ) and the spawn-sync constructs used in Cilk. We have implemented our algorithm in a tool called TaskChecker and evaluated it on a suite of 12 benchmarks. To reduce overhead of the dynamic analysis, we have also implemented various static optimizations in the tool. Our experimental results indicate that our approach performs well in practice, incurring an average slowdown of 3.05× compared to a serial execution in the optimized case.
ISSN:0925-9856
1572-8102
DOI:10.1007/s10703-012-0143-7