[发明专利]基于文本分析的MPI代码通信过程解析方法有效
申请号: | 201811345110.6 | 申请日: | 2018-11-13 |
公开(公告)号: | CN109710419B | 公开(公告)日: | 2022-04-08 |
发明(设计)人: | 肖利民;张锐;闫柏成;王志昊;刘成春;周易 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F11/36 |
代理公司: | 北京海虹嘉诚知识产权代理有限公司 11129 | 代理人: | 吴小灿 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 文本 分析 mpi 代码 通信 过程 解析 方法 | ||
1.基于文本分析的MPI代码通信过程解析方法,其特征在于,包括以下步骤:
1)逐行分析MPI源代码,抓取出关键通信变量并保存到列表中;
2)根据用户期望启动的实际进程数n,循环n次对源代码进行分析;每次循环分析模拟一个MPI任务的执行;
3)每次循环分析时,根据解析到的不同关键词执行相应的分析过程,搜索是否包含MPI通信关键词;
4)根据搜索到的不同的MPI通信关键词,将通信过程转换为点对点通信信息;
5)最后将多个执行循环分析进程中的点对点通信信息整合到一起;
所述步骤1)包括初始化和获得关键通信变量的步骤:
步骤(1.1)获得源代码文件和用户期望启动的实际进程数n;
步骤(1.2)扫描MPI应用源代码,逐行进行词法分析;
步骤(1.3)当解析到MPI_Comm_rank关键词函数时,将这个函数的第二个参数的变量名保存到一个变量中,这个变量名表示的是当前运行的进程号;
步骤(1.4)当解析到MPI_Comm_size关键词时,将这个函数的第二个参数的变量名保存到一个变量中,这个变量名表示的是当前开启的实际进程数;
步骤(1.5)当解析到while、for、if关键词语句时,在相应关键词语句的执行代码段中搜索是否包含MPI通信关键词,如果包含,那么将相应关键词语句的判断条件表达式中涉及的变量保存到一个全局列表中。
2.根据权利要求1所述的方法,其特征在于,所述步骤2)包括以下步骤:
步骤(2.1)按照当前模拟MPI任务的进程号将循环分析均匀分布到多个执行进程中进行分析,具体执行进程数由用户配置;
步骤(2.2)开启一个进程池,池中运行的进程数大小由用户配置,然后运行步骤(3.1)中的多个进程,即对实际执行进程中包含的多个模拟MPI任务执行的循环进行分析;
步骤(2.3)每次循环分析时首先将每个进程中保存着变量和对应值的字典清空,然后获得由#define定义的变量名和对应的值,保存到字典中,然后将获得的表示启动进程数的变量名和开启的进程数以键值对的形式保存在字典中,然后再将表示当前运行的进程号的变量名和当前循环的次数以键值对的形式保存在字典中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811345110.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种对象处理方法及装置
- 下一篇:一种IEC61850模型的访问方法