当前位置: X-MOL 学术Automat. Softw. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Region and effect inference for safe parallelism
Automated Software Engineering ( IF 2.0 ) Pub Date : 2019-05-11 , DOI: 10.1007/s10515-019-00257-3
Alexandros Tzannes , Stephen T. Heumann , Lamyaa Eloussi , Mohsen Vakilian , Vikram S. Adve , Michael Han

In this paper, we present the first full regions-and-effects inference algorithm for explicitly parallel fork-join programs. We infer annotations equivalent to those in Deterministic Parallel Java (DPJ) for type-safe C++ programs. 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.

中文翻译:

安全并行的区域和效果推断

在本文中,我们提出了第一个用于显式并行 fork-join 程序的完整区域和效果推理算法。我们为类型安全的 C++ 程序推断出与 Deterministic Parallel Java (DPJ) 中的注解等效的注解。我们选择 DPJ 注释是因为它们为我们所知道的任何现有并发检查方法(静态或动态)提供了最强大的安全保证,而且它也是我们所知道的最具表现力的静态检查系统,它提供了强大的安全保证。然而,这种表现力使手动注释变得困难和乏味,这激发了对自动推理的需求,但也使推理问题变得非常具有挑战性:代码可能使用区域多态性、具有复杂别名的命令式更新、任意递归、分层区域规范、和通配符元素来描述潜在的无限区域集。我们将推理表示为约束满足问题,并开发、实施和评估解决该问题的算法。算法推断的区域和效果注释构成了安全并行性的可检查证明,并且可以记录下来用于文档和快速模块化安全检查。
更新日期:2019-05-11
down
wechat
bug