首页> 外文期刊>International journal of parallel programming >Complete Formal Specification of the OpenMP Memory Model
【24h】

Complete Formal Specification of the OpenMP Memory Model

机译:OpenMP内存模型的完整正式规范

获取原文

摘要

OpenMP [OpenMP Architecture Review Board. OpenMP application program interface, version 2.5] is an important API for shared memory programming, combining shared memory's potential for performance with a simple programming interface. Unfortunately, OpenMP lacks a critical tool for demonstrating whether programs are correct: a formal memory model. Instead, the current official definition of the OpenMP memory model (the OpenMP 2.5 specification [OpenMP Architecture Review Board. OpenMP application program interface, version 2.5]) is in terms of informal prose. As a result, it is impossible to verify OpenMP applications formally since the prose does not provide a formal consistency model that precisely describes how reads and writes on different threads interact. We expand on our previous work that focused on the formal verification of OpenMP programs through a formal memory model [Greg Bronevetsky and Bronis de Supinski. Formal specification of the memory model. In International Workshop on OpenMP (IWOMP), (2006)]. As in that work, our formalization, which is derived from the existing prose model [OpenMP Architecture Review Board. OpenMP application program interface, version 2.5], provides a two-step process to verify whether an observed OpenMP execution is conformant. This paper extends the model to cover the entire specification. In addition to this formalization, our contributions include a discussion of ambiguities in the current prose-based memory model description. Although our formal model may not capture the current informal memory model perfectly, in part due to these ambiguities, our model reflects our understanding of the informal model's intent. We conclude with several examples that may indicate areas of the OpenMP memory model that need further refinement, however it is specified. Our goal is to motivate the OpenMP community to adopt those refinements eventually, ideally through a formal model, in later OpenMP specifications.
机译:OpenMP [OpenMP体系结构审查委员会。 OpenMP应用程序接口,版本2.5]是用于共享内存编程的重要API,它将共享内存的性能潜力与简单的编程接口结合在一起。不幸的是,OpenMP缺乏证明程序是否正确的关键工具:正式的内存模型。取而代之的是,OpenMP内存模型的当前正式定义(OpenMP 2.5规范[OpenMP体系结构审查委员会。OpenMP应用程序接口,版本2.5])是基于非正式的散文。结果,由于散文没有提供精确描述不同线程上的读取和写入如何交互的正式一致性模型,因此无法正式验证OpenMP应用程序。我们将扩展以前的工作,即通过正式的内存模型[Greg Bronevetsky和Bronis de Supinski对OpenMP程序进行正式的验证。内存模型的正式规范。在OpenMP国际研讨会(IWOMP)中,(2006年)]。在这项工作中,我们的形式化是从现有的散文模型[OpenMP Architecture Review Board。 [OpenMP应用程序界面,版本2.5]提供了两步过程,以验证观察到的OpenMP执行是否符合要求。本文扩展了模型以覆盖整个规范。除了这种形式化之外,我们的贡献还包括讨论当前基于散文的记忆模型描述中的歧义。尽管我们的形式模型可能无法完全完美地捕获当前的非正式记忆模型,部分是由于这些歧义,但我们的模型反映了我们对非正式模型意图的理解。我们以几个示例结束,这些示例可能指示OpenMP内存模型中需要进一步改进的区域,但是已对其进行了指定。我们的目标是激励OpenMP社区最终(最好是通过正式模型)在以后的OpenMP规范中采用这些改进。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号