2012 | OriginalPaper | Chapter
Permission Regions for Race-Free Parallelism
Authors : Edwin Westbrook, Jisheng Zhao, Zoran Budimlić, Vivek Sarkar
Published in: Runtime Verification
Publisher: Springer Berlin Heidelberg
Activate our intelligent search to find suitable subject content or patents.
Select sections of text to find matching patents with Artificial Intelligence. powered by
Select sections of text to find additional relevant content using AI-assisted search. powered by
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.