On-the-fly detection of data races in OpenMP programs

  • Authors:
  • Ok-Kyoon Ha;In-Bon Kuh;Guy Martin Tchamgoue;Yong-Kee Jun

  • Affiliations:
  • Gyeongsang National University, South Korea;Gyeongsang National University, South Korea;Gyeongsang National University, South Korea;Gyeongsang National University, South Korea

  • Venue:
  • Proceedings of the 2012 Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

OpenMP provides a portable way to achieve high performance and simple compiler directives to transform a sequential program into parallel program. It is important to detect data races in OpenMP programs, because they may lead to unpredictable results from an execution of the programs. To detect data races that occur during an execution of OpenMP programs, the representative on-the-fly technique, Helgrind+, mainly focuses on reducing false positives. Unfortunately, this technique is still imprecise and inefficient, when applied to large OpenMP programs which use a structured fork-join parallelism with a large number of threads. This paper presents a novel approach which efficiently detects apparent data races without false positives in large OpenMP programs. This approach combines an efficient thread labeling to maintain the logical concurrency of thread segments with a precise detection protocol to analyze conflicting accesses to every shared memory location. We implemented this approach on top of the Pin binary instrumentation framework and compared it with Helgrind+. Empirical results using OpenMP benchmarks show that our technique detects apparent data races without false positives contrarily to Helgrind+, while reducing the average runtime overhead to 19% of Helgrind+ with a similar amount of space overhead.