Permission regions for race-free parallelism

  • Authors:
  • Edwin Westbrook;Jisheng Zhao;Zoran Budimlić;Vivek Sarkar

  • Affiliations:
  • Department of Computer Science, Rice University;Department of Computer Science, Rice University;Department of Computer Science, Rice University;Department of Computer Science, Rice University

  • Venue:
  • RV'11 Proceedings of the Second international conference on Runtime verification
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

It is difficult to write parallel programs that are correct. This is because of the potential for data races , when parallel tasks access shared data in complex and unexpected ways. A classic approach to addressing this problem is dynamic race detection, which has the benefits of working transparently to the programmer and not raising any false alarms. Unfortunately, dynamic race detection is very slow in practice; further, it can only detect low-level races, not high-level races which are also known as atomicity violations . In this paper, we present a new approach to dynamic detection of data races and atomicity violations based on the concept of permission regions , which are regions of code that have permission to read or write certain variables. Dynamic checks are used to ensure that no conflicting permission regions execute in parallel, thereby allowing the granularity of checks to be adjusted according to the size of permission regions. We demonstrate that permission regions can be used to achieve significantly better performance than past work on dynamic race detection, to the point where they could be used to enable always on race detection for both low- and high-level races in production code.