Chapter

Runtime Verification

Volume 6418 of the series Lecture Notes in Computer Science pp 368-383

Efficient Data Race Detection for Async-Finish Parallelism

  • Raghavan RamanAffiliated withRice University
  • , Jisheng ZhaoAffiliated withRice University
  • , Vivek SarkarAffiliated withRice University
  • , Martin VechevAffiliated withIBM T. J. Watson Research Center
  • , Eran YahavAffiliated withIBM T. J. Watson Research Center

* Final gross prices may vary according to local VAT.

Get Access

Abstract

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 larger) for use in mainstream software development.

In this paper, we present an efficient dynamic race detector algorithm targeting the async-finish task-parallel parallel programming model. The async and finish constructs are at the core of languages such as X10 and Habanero Java (HJ). These constructs generalize the spawn-sync constructs used in Cilk, while still ensuring that all computation graphs are deadlock-free.

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.