Skip to main content
QUICK REVIEW

[论文解读] Checking Race Freedom of Clocked X10 Programs

Tomofumi Yuki, Paul Feautrier|arXiv (Cornell University)|Nov 18, 2013
Parallel Computing and Optimization Techniques参考文献 13被引用 5
一句话总结

该论文提出了一种静态分析方法,用于保证使用时钟的多面体X10程序中无数据竞争。时钟是动态同步原语,类似于屏障,但其参与进程集合可在运行时动态变化。通过将多面体计数中的同步计数扩展到因果关系(happens-before)关系,并利用SMT求解器来否定潜在的数据竞争,该方法在一般问题不可判定的前提下,仍能提供编译时无数据竞争的保证。

ABSTRACT

One of many approaches to better take advantage of parallelism, which has now become mainstream, is the introduction of parallel programming languages. However, parallelism is by nature non-deterministic, and not all parallel bugs can be avoided by language design. This paper proposes a method for guaranteeing absence of data races in the polyhedral subset of clocked X10 programs. Clocks in X10 are similar to barriers, but are more dynamic; the subset of processes that participate in the synchronization can dynamically change at runtime. We construct the happens-before relation for clocked X10 programs, and show that the problem of race detection is undecidable. However, in many practical cases, modern tools are able to find solutions or disprove their existence. We present a set of benchmarks for which the analysis is possible and has an acceptable running time.

研究动机与目标

  • 为使用时钟的X10程序提供静态、编译时的无数据竞争保证,其中时钟比传统屏障更具动态性。
  • 解决现有针对MPI风格屏障的静态分析方法不适用于X10动态时钟语义的问题。
  • 将先前的多面体数据竞争检测技术扩展至包含X10的核心构造:async、finish和时钟。
  • 通过多面体中的整数点计数,形式化在时钟存在情况下的因果关系(happens-before)关系。
  • 通过原型实现与基准测试套件,证明方法的可行性,展示在实际用例中可接受的性能表现。

提出的方法

  • 扩展X10的语义定义,正式形式化在时钟存在时的因果关系(happens-before)关系,其中每个进程的同步计数在执行轨迹上被追踪。
  • 将某条语句实例处进程已完成的同步次数建模为多面体并集中的整数点计数。
  • 将数据竞争条件表示为约束满足问题,其中潜在的冲突访问必须通过SMT求解来否定。
  • 使用先进的SMT求解器(如Z3)来否定数据竞争的存在,因为由于同步计数中存在多项式表达式,整数线性规划不足以处理。
  • 实现一个原型工具,用于处理X10程序,执行多面体分析,并应用基于SMT的验证。
  • 与X10中at和places的先前工作集成,以支持对核心构造的完整静态分析。

实验结果

研究问题

  • RQ1能否在X10的动态时钟环境中,正式扩展因果关系(happens-before)关系,使得运行时参与进程可动态变化?
  • RQ2在多面体模型下,时钟X10程序的数据竞争检测是否可判定?
  • RQ3如何数学建模时钟的同步计数动态特性,以支持静态分析?
  • RQ4SMT求解器能否在多项式同步计数存在的情况下,有效否定数据竞争的存在?
  • RQ5所提出方法在具有复杂时钟使用的实际X10基准测试中,其可扩展性如何?

主要发现

  • 由于同步计数中出现多项式表达式,时钟X10程序中的数据竞争检测问题在一般情况下是不可判定的。
  • 尽管存在不可判定性,该方法在所有基准程序中成功证明了无数据竞争,且Z3在除MOLDYN外的所有情况下高效否定了潜在的数据竞争。
  • 该分析是实例粒度和元素粒度的,通过区分语句实例和数组元素,有效减少了误报。
  • 原型实现成功在多面体模型中处理了X10所有核心构造——async、finish和时钟。
  • 该方法在实际基准测试中具有可扩展性,同步计数的开销极低,仅在最大规模案例(MOLDYN)中略有增加。
  • 该方法可扩展至具有类似同步语义的其他语言(如Habanero-Java),并可与现有关于places和原子块的工作互补。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。