【24h】

Modular reasoning for deterministic parallelism

机译:确定性并行的模块化推理

获取原文
获取原文并翻译 | 示例
           

摘要

Weaving a concurrency control protocol into a program is difficult and error-prone. One way to alleviate this burden is deterministic parallelism. In this well-studied approach to parallelisation, a sequential program is annotated with sections that can execute concurrently, with automatically injected control constructs used to ensure observable behaviour consistent with the original program. This paper examines the formal specification and verification of these constructs. Our high-level specification defines the conditions necessary for correct execution; these conditions reflect program dependencies necessary to ensure deterministic behaviour.We connect the high-level specification used by clients of the library with the low-level library implementation, to prove that a client’s requirements for determinism are enforced. Significantly, we can reason about program and library correctness without breaking abstraction boundaries. To achieve this, we use concurrent abstract predicates, based on separation logic, to encapsulate racy behaviour in the library’s implementation. To allow generic specifications of libraries that can be instantiated by client programs, we extend the logic with higherorder parameters and quantification. We show that our high-level specification abstracts the details of deterministic parallelism by verifying two different low-level implementations of the library.
机译:将并发控制协议编织到程序中既困难又容易出错。减轻这种负担的一种方法是确定性并行性。在这种经过充分研究的并行化方法中,用可以并发执行的段来注释顺序程序,并使用自动注入的控制构造来确保与原始程序一致的可观察行为。本文研究了这些结构的正式规范和验证。我们的高级规范定义了正确执行的必要条件;这些条件反映了确保确定性行为所必需的程序依赖性。我们将库的客户端使用的高级规范与低级别的库实现联系起来,以证明满足了客户对确定性的要求。重要的是,我们可以推理程序和库的正确性而不破坏抽象边界。为此,我们使用基于分离逻辑的并发抽象谓词,将不道德行为封装在库的实现中。为了允许可以由客户端程序实例化的库的通用规范,我们使用高阶参数和量化扩展了逻辑。我们展示了我们的高级规范通过验证库的两个不同的低级实现来抽象确定性并行的细节。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号