发明名称 并行程序通信模式的提取方法及系统
摘要 本发明涉及一种并行程序通信模式的提取方法及系统,该方法包括步骤:解析并行程序源码,识别并行程序中的通信函数调用,确定所述通信函数中的通信变量,并将所述通信变量放入设定集合;分析并行程序的控制流和数据流,收集并行程序的数据依赖、控制依赖以及通信依赖信息;收集并行程序中的调用信息,构建程序调用图;通过基于LIVE变量传播的切割算法对并行程序进行程序切割,获得并行程序的程序切片;执行所述程序切片,收集并输出通信记录;根据所述通信记录,按照设定目标获取所述并行程序的通信模式。本发明的方法及系统可减少收集大规模并行程序通信模式的资源需求和时间开销,实现在小规模系统上收集大规模并行程序通信模式的目标。
申请公布号 CN101661409B 申请公布日期 2011.11.09
申请号 CN200910093067.3 申请日期 2009.09.22
申请人 清华大学 发明人 郑纬民;陈文光;翟季冬;盛田维;何江舟
分类号 G06F9/54(2006.01)I 主分类号 G06F9/54(2006.01)I
代理机构 北京路浩知识产权代理有限公司 11002 代理人 胡小永
主权项 一种并行程序通信模式的提取方法,该方法包括步骤:S1.解析并行程序源码,识别所述并行程序中的通信函数调用,确定所述通信函数中的通信变量,并将所述通信变量放入设定集合;S2.分析所述并行程序的控制流和数据流,收集所述并行程序的数据依赖、控制依赖以及通信依赖信息;S3.收集所述并行程序中的调用信息,构建程序调用图;S4.通过基于LIVE变量传播的切割算法对所述并行程序进行程序切割,获得所述并行程序的程序切片;S5.执行所述程序切片,收集并输出通信记录;S6.根据所述通信记录,按照设定目标获取所述并行程序的通信模式;其中,一个变量是LIVE变量,当且仅当,它的值改变可以通过程序的数据依赖、控制依赖和通信依赖的传播影响到任何通信变量的值;步骤S4进一步包括:S4.1将所述通信变量放入LIVE变量集合;S4.2自顶向下遍历所述程序调用图的每个节点函数,对所述每个节点函数,若存在所述设定集合中的通信变量通过所述数据依赖、控制依赖以及通信依赖关联的变量,则将相应关联的变量放入所述LIVE变量集合;S4.3自底向上遍历所述程序调用图的每个节点函数,对所述每个节点函数,若存在所述设定集合中的通信变量通过所述数据依赖、控制依赖以及通信依赖关联的变量,则将相应关联的变量放入所述LIVE变量集合;S4.4若所述LIVE变量集合保持不变,则执行步骤S4.5,否则返回步骤S4.2;S4.5标记所述并行程序中所有所述LIVE变量集合中变量定义的语句;S4.6对所述并行程序中的所有接收语句,标记接收变量在所述LIVE变量集合中的通信语句,并根据所述通信依赖信息标记对应的发送函数;S4.7删除所述并行程序中未标记的非通信语句,及未在所述LIVE变量集合中的变量,得到所述并行程序的程序切片。
地址 100084 北京市海淀区清华园北京100084-82信箱