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 (...
Uloženo v:
| Vydáno v: | Formal methods in system design Ročník 41; číslo 3; s. 321 - 347 |
|---|---|
| Hlavní autoři: | , , , , |
| 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!
|
| 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 |