Author Login Editor-in-Chief Peer Review Editor Work Office Work

Computer Engineering ›› 2012, Vol. 38 ›› Issue (15): 35-38,42. doi: 10.3969/j.issn.1000-3428.2012.15.010

• Networks and Communications • Previous Articles     Next Articles

Static Data Race Detection for X10 Parallel Programs

WANG Xu, CHEN Yu-ting   

  1. (School of Software, Shanghai Jiaotong University, Shanghai 200240, China)
  • Received:2011-11-07 Online:2012-08-05 Published:2012-08-05

X10并行程序中静态数据竞争检测

王 旭,陈雨亭   

  1. (上海交通大学软件学院,上海 200240)
  • 作者简介:王 旭(1984-),男,硕士研究生,主研方向:并行程序分析;陈雨亭,讲师、博士
  • 基金资助:
    国家自然科学基金资助面上项目(60970009);上海市计算机软件评测重点实验室开放课题基金资助项目(SSTL2011_02)

Abstract: A multi-threaded program can contain a data race when two or more threads access the same memory location under no ordering constraints and at least one access is a write operation. The existence of data races can lead to many kinds of harmful program behaviors, including determinism violations, corrupted memory, and so on. It proposes a new algorithm for static detection of data races in X10 parallel programs, which contains four steps: pairs of sources accesses computation, pairs of reachable accesses computation, pairs of clockwise accesses computation, and escape analysis of accessing pairs computation. The essential idea of this approach is to construct the call graph of the program on the basis of the WALA, and then to compute pairs of sources accesses for detecting potential data races. Experimental results show that the algorithm performs well and can find and report potential data races in a cost-effective manner.

Key words: X10 language, data race, parallel program analysis, static detection, multi-thread

摘要: 在多线程程序中,当2个以上线程在没有顺序约束的条件下访问同一个存储单元时,且其中至少有一个为写访问,则可能会发生数据竞争。为此,提出一种针对X10并行程序的静态数据竞争检测算法,包括源访存对计算、可达访存对计算、时钟同步访存对计算和逃逸访存对计算4个阶段。通过在WALA框架中分析构建程序的调用图,计算源访存对集合,检测出内存访存中可能发生数据竞争的无序对。实验结果表明,该算法可以在不显著增加X10并行程序总体运行时间的情况下,达到比较理想的数据竞争检测效果。

关键词: X10语言, 数据竞争, 并行程序分析, 静态检测, 多线程

CLC Number: