%0 Journal Article %T 基于依赖分析的spmd程序隐式同步检测及处理算法 %A 岳峰? %A 庞建民? %A 赵荣彩? %J 软件学报 %P 1775-1785 %D 2013 %R 10.3724/SP.J.1001.2013.04343 %X spmd翻译是指将一种特定类型的spmd程序编译到多种设备上,当前的细粒度spmd翻译研究建立在线程之间相互独立的假定上,线程之间只通过显式同步进行通信.但线程之间还隐含存在着各种数据依赖,如隐式同步,这导致了spmd翻译在处理隐式同步时的正确性缺陷.为了对隐式同步进行处理,对细粒度spmd模型cuda中的隐式同步进行了系统的分析,指出了当前翻译cuda程序到多核平台的相关研究在处理隐式同步上的不足,提出了基于依赖分析的隐式同步检测方法.在检测出隐式同步的基础上,设计了循环重排序的优化处理算法,对显式同步和隐式同步进行了统一处理.实验结果表明,与现有的spmd翻译方法相比,该检测及处理算法能够正确而快速地检测并翻译cuda中的各种隐式同步,代价较小,有助于编译器产生正确而有效的翻译结果. %K spmd %K 翻译 %K 显式同步 %K 隐式同步 %K 依赖分析 %K 线程循环 %K 循环重排序 %U http://www.jos.org.cn/ch/reader/view_abstract.aspx?file_no=4343&flag=1