Dynamic data race detection for correlated variables

  • Authors:
  • Ali Jannesari;Markus Westphal-Furuya;Walter F. Tichy

  • Affiliations:
  • Institute for Program Structures and Data Organization, Karlsruhe Institute of Technology, Karlsruhe, Germany;Institute for Program Structures and Data Organization, Karlsruhe Institute of Technology, Karlsruhe, Germany;Institute for Program Structures and Data Organization, Karlsruhe Institute of Technology, Karlsruhe, Germany

  • Venue:
  • ICA3PP'11 Proceedings of the 11th international conference on Algorithms and architectures for parallel processing - Volume Part I
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

In parallel programs concurrency bugs are often caused by unsynchronized accesses to shared memory locations, which are called data races. In order to support programmers in writing correct parallel programs, it is therefore highly desired to have tools on hand that automatically detect such data races. Today, most of these tools only consider unsynchronized read and write operations on a single memory location. Concurrency bugs that involve multiple accesses on a set of correlated variables may be completely missed. Tools may overwhelm programmers with data races on various memory locations, without noticing that the locations are correlated. In this paper, we propose a novel approach to data race detection that automatically infers sets of correlated variables and logical operations by analyzing data and control dependencies. For data race detection itself, we combine a modified version of the lockset algorithm with happens-before analysis providing the first hybrid, dynamic race detector for correlated variables. We implemented our approach on top of the Valgrind, a framework for dynamic binary instrumentation. Our evaluation confirmed that we can catch data races missed by existing detectors and provide additional information for correct bug fixing.