基于OpenMP的并行Fortran程序数据竞争静态检测方法
Static Analysis Method for Detecting Data Race of Parallel Fortran Based OpenMP Program作者机构:北京邮电大学网络与交换技术国家重点实验室北京100876
出 版 物:《小型微型计算机系统》 (Journal of Chinese Computer Systems)
年 卷 期:2023年第44卷第11期
页 面:2377-2383页
学科分类:08[工学] 0835[工学-软件工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
主 题:OpenMP 静态分析 共享内存编程 数据竞争检测 并行数据流
摘 要:数据竞争是并行程序中最常见的问题,因为其在程序中存在着随机性和难以重现的问题,所以利用动态方法检测并不可靠.本文介绍了一种针对以OpenMP实现程序并行的数据竞争故障的静态检测方法.首先根据基于OpenMP的Fortran并行程序的语法和语义特性,构建并行程序的抽象语法树,并对控制流图进行扩展引入并行控制流图;然后将数据竞争问题抽象为一种故障模型,利用有限状态机来形式化的描述此类故障模型;最后对并行区域的潜在赋值操作进行并行数据流分析,在程序控制流图节点上进行故障状态机的状态转化来实现数据竞争的检测.该方法已在自研的缺陷检测系统(DTS)中应用,并通过DataRaceBench的实验数据证明本文方法可以有效的检测出数据竞争问题.