TY - GEN
T1 - Region and effect inference for safe parallelism
AU - Tzannes, Alexandros
AU - Heumann, Stephen T.
AU - Eloussi, Lamyaa
AU - Vakilian, Mohsen
AU - Adve, Vikram S.
AU - Han, Michael
N1 - Publisher Copyright:
© 2015 IEEE.
PY - 2016/1/4
Y1 - 2016/1/4
N2 - In this paper, we present the first full regions-and-effects inference algorithm for explicitly parallel fork-join programs. We infer annotations inspired by Deterministic Parallel Java (DPJ) for a type-safe subset of C++. We chose the DPJ annotations because they give the strongest safety guarantees of any existing concurrency-checking approach we know of, static or dynamic, and it is also the most expressive static checking system we know of that gives strong safety guarantees. This expressiveness, however, makes manual annotation difficult and tedious, which motivates the need for automatic inference, but it also makes the inference problem very challenging: the code may use region polymorphism, imperative updates with complex aliasing, arbitrary recursion, hierarchical region specifications, and wildcard elements to describe potentially infinite sets of regions. We express the inference as a constraint satisfaction problem and develop, implement, and evaluate an algorithm for solving it. The region and effect annotations inferred by the algorithm constitute a checkable proof of safe parallelism, and it can be recorded both for documentation and for fast and modular safety checking.
AB - In this paper, we present the first full regions-and-effects inference algorithm for explicitly parallel fork-join programs. We infer annotations inspired by Deterministic Parallel Java (DPJ) for a type-safe subset of C++. We chose the DPJ annotations because they give the strongest safety guarantees of any existing concurrency-checking approach we know of, static or dynamic, and it is also the most expressive static checking system we know of that gives strong safety guarantees. This expressiveness, however, makes manual annotation difficult and tedious, which motivates the need for automatic inference, but it also makes the inference problem very challenging: the code may use region polymorphism, imperative updates with complex aliasing, arbitrary recursion, hierarchical region specifications, and wildcard elements to describe potentially infinite sets of regions. We express the inference as a constraint satisfaction problem and develop, implement, and evaluate an algorithm for solving it. The region and effect annotations inferred by the algorithm constitute a checkable proof of safe parallelism, and it can be recorded both for documentation and for fast and modular safety checking.
KW - Annotation Inference
KW - Checkable Proof
KW - Safe Parallelism
KW - Static Analysis
UR - http://www.scopus.com/inward/record.url?scp=84963877614&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84963877614&partnerID=8YFLogxK
U2 - 10.1109/ASE.2015.59
DO - 10.1109/ASE.2015.59
M3 - Conference contribution
AN - SCOPUS:84963877614
T3 - Proceedings - 2015 30th IEEE/ACM International Conference on Automated Software Engineering, ASE 2015
SP - 512
EP - 523
BT - Proceedings - 2015 30th IEEE/ACM International Conference on Automated Software Engineering, ASE 2015
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 30th IEEE/ACM International Conference on Automated Software Engineering, ASE 2015
Y2 - 9 November 2015 through 13 November 2015
ER -