Model Checking Task Parallel Programs Using Gradual Permissions (N)

Habanero is a task parallel programming model that provides correctness guarantees to the programmer. Even so, programs may contain data races that lead to non-determinism, which complicates debugging and verification. This paper presents a sound algorithm based on permission regions to prove data r...

Full description

Saved in:
Bibliographic Details
Published in:2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE) pp. 535 - 540
Main Authors: Mercer, Eric G., Anderson, Peter, Vrvilo, Nick, Sarkar, Vivek
Format: Conference Proceeding
Language:English
Published: IEEE 01.11.2015
Subjects:
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Habanero is a task parallel programming model that provides correctness guarantees to the programmer. Even so, programs may contain data races that lead to non-determinism, which complicates debugging and verification. This paper presents a sound algorithm based on permission regions to prove data race and deadlock freedom in Habanero programs. Permission regions are user annotations to indicate the use of shared variables over spans of code. The verification algorithm restricts scheduling to permission region boundaries and isolation to reduce verification cost. The effectiveness of the algorithm is shown in benchmarks with an implementation in the Java Pathfinder (JPF) model checker. The implementation uses a verification specific library for Habanero that is tested using JPF for correctness. The results show significant reductions in cost, where cost is controlled with the size of the permission regions, at the risk of rejecting programs that are actually free of any data race or deadlock.
DOI:10.1109/ASE.2015.75