[发明专利]并行程序通信模式的提取方法及系统有效

专利信息
申请号: 200910093067.3 申请日: 2009-09-22
公开(公告)号: CN101661409A 公开(公告)日: 2010-03-03
发明(设计)人: 郑纬民;陈文光;翟季冬;盛田维;何江舟 申请(专利权)人: 清华大学
主分类号: G06F9/54 分类号: G06F9/54
代理公司: 北京路浩知识产权代理有限公司 代理人: 胡小永
地址: 100084北京市海淀*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 并行 程序 通信 模式 提取 方法 系统
【权利要求书】:

1.一种并行程序通信模式的提取方法,该方法包括步骤:

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变量集合中的变量,得到所述并行程序的程序切片。

2.如权利要求1所述的并行程序通信模式的提取方法,其特征 在于,步骤S1进一步包括:

S1.1按照预定义的函数名识别所述并行程序中所有的通信函 数;

S1.2按照预定义的格式确定所述通信函数中的每个通信变量, 并将其放入所述设定集合。

3.如权利要求1所述的并行程序通信模式的提取方法,其特征 在于,步骤S2进一步包括:

S2.1通过数据流分析,对所述并行程序中每个变量的使用和定 义之间建立链接关系,即数据依赖,并将所述数据依赖信息保存于使 用-定义UD数据结构;

S2.2分析所述并行程序的控制分支,将所述并行程序中的控制 依赖转化为所述数据依赖,并将转化的数据依赖信息保存于使用-定 义UD数据结构;

S2.3对所述并行程序的所有通信调用进行配对分析,对所有发 送和接收的通信操作建立链接关系,即通信依赖,并将所述通信依赖 信息保存于消息依赖MD数据结构。

4.如权利要求1所述的并行程序通信模式的提取方法,其特征 在于,步骤S3进一步包括:

S3.1记录所述并行程序中每个函数调用点的被调用函数名称以 及需要传递的参数变量;

S3.2根据所述记录的信息,构建程序调用图。

5.如权利要求3所述的并行程序通信模式的提取方法,其特征 在于,步骤S5进一步包括:

S5.1记录所述标记的通信语句在实际传输通信语句中的消息内 容,并记录:消息类型、消息大小、消息的源和目的地址;

S5.2记录所述未标记的通信语句的消息类型、消息大小、消息 的源和目的地址。

6.一种并行程序通信模式的提取系统,该系统包括:

变量确定单元,用于解析并行程序源码,识别所述并行程序中的 通信函数调用,确定所述通信函数中的通信变量,并将所述通信变量 放入设定集合;

分析单元,用于分析所述并行程序的控制流和数据流,收集程序 的数据依赖、控制依赖以及通信依赖信息;

调用图构建单元,用于收集所述并行程序中的调用信息,构建程 序调用图;

程序切割单元,用于通过基于LIVE变量传播的切割算法对所述 并行程序进行程序切割,获得所述并行程序的程序切片;

执行单元,用于执行所述程序切片,收集并输出通信记录;

提取单元,用于根据所述通信记录,按照设定目标获取所述并行 程序的通信模式;

其中,一个变量是LIVE变量,当且仅当,它的值改变可以通过 程序的数据依赖、控制依赖和通信依赖的传播影响到任何通信变量的 值;

所述程序切割单元进一步包括:

整理子单元,用于将所述通信变量放入LIVE变量集合;

第一遍历子单元,用于自顶向下遍历所述程序调用图的每个节点 函数,对所述每个节点函数,若存在所述设定集合中的通信变量通过 所述数据依赖、控制依赖以及通信依赖关联的变量,则将相应关联的 变量放入所述LIVE变量集合;

第二遍历子单元,用于自底向上遍历所述程序调用图的每个节点 函数,对所述每个节点函数,若存在所述设定集合中的通信变量通过 所述数据依赖、控制依赖以及通信依赖关联的变量,则将相应关联的 变量放入所述LIVE变量集合;

第一标记单元,用于在所述第一遍历子单元及第二遍历子单元遍 历所述程序调用图的每个节点函数后,若所述LIVE变量集合保持不 变,标记所述并行程序中所有所述LIVE变量集合中变量定义的语句; 若所述LIVE变量集合发生变化,则由所述第一遍历子单元及第二遍 历子单元再一次遍历所述程序调用图的每个节点函数;

第二标记单元,用于对所述并行程序中的所有接收语句,标记接 收变量在所述LIVE变量集合中的通信语句,并根据所述通信依赖信 息标记对应的发送函数;

程序切割子单元,用于删除所述并行程序中未标记的非通信语 句,及未在所述LIVE变量集合中的变量,得到所述并行程序的程序 切片。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200910093067.3/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top