基于文本分析的MPI代码通信过程解析方法技术

技术编号:21033807 阅读:33 留言:0更新日期:2019-05-04 05:16
本发明专利技术提供一种基于文本分析的MPI代码通信过程解析方法,应用于基于MPI开发的并行应用程序中,基于文本分析的MPI代码通信过程解析方式,通过对MPI并行应用源代码分析,模拟MPI任务的执行过程快速准确地挖掘出点对点通信信息,减少分析过程中的资源开销。包括以下步骤:(a)对MPI源代码逐行分析,抓取出关键通信变量;(b)根据用户期望启动的进程数,对源代码执行相应次数的循环分析,每次循环分析模拟一个MPI任务的执行;(c)每次循环时,根据解析到的不同的关键词语句执行相应的分析过程,搜索是否包含MPI通信关键词;(d)根据搜索到的不同的MPI通信关键词,将通信过程转换为点对点通信信息;(e)整合多个进程中的点对点通信信息。

【技术实现步骤摘要】
基于文本分析的MPI代码通信过程解析方法
:本专利技术涉及一种代码解析方法,更具体的说,尤其涉及一种基于文本分析的MPI代码通信过程解析方法。
技术介绍
:在计算机科学中,高性能计算(HighPerformanceComputing,HPC)是一个重要的分支,是一种从多个方面研究开发高性能计算机的技术,例如从系统结构、并行算法和软件开发等方面。高性能计算已逐渐成为继传统的理论研究和实验室实验之外的科学研究的新支柱。在使用高性能计算的过程中,一些应用并不能有效地利用其所占用的高性能计算平台的计算资源,造成了许多计算资源的浪费。为了能更高效地利用高性能计算平台,需要能指导其与实际应用相匹配,可以通过程序预测技术来达到这一目的。在使用高性能计算的过程中,大部分程序都是并行执行的,因此,对于并行程序研究其性能预测及优化技术具有重要的意义,能提高高性能计算的性能。要对并行应用进行性能预测及优化首先需要分析并行应用的通信性能,因为并行应用的通信性能是影响并行应用整体性能的关键因素之一,而要准确地反映并行应用的通信性能,需要在并行应用代码中抓取关键通信信息并转化为点对点通信信息。由于消息传递接口(本文档来自技高网...

【技术保护点】
1.基于文本分析的MPI代码通信过程解析方法,其特征在于,包括以下步骤:1)逐行分析MPI源代码,抓取出关键通信变量并保存到列表中;2)根据用户期望启动的实际进程数n,循环n次对源代码进行分析;每次循环分析模拟一个MPI任务的执行;3)每次循环分析时,根据解析到的不同关键词执行相应的分析过程,搜索是否包含MPI通信关键词;4)根据搜索到的不同的MPI通信关键词,将通信过程转换为点对点通信信息;5)最后将多个执行循环分析进程中的点对点通信信息整合到一起。

【技术特征摘要】
1.基于文本分析的MPI代码通信过程解析方法,其特征在于,包括以下步骤:1)逐行分析MPI源代码,抓取出关键通信变量并保存到列表中;2)根据用户期望启动的实际进程数n,循环n次对源代码进行分析;每次循环分析模拟一个MPI任务的执行;3)每次循环分析时,根据解析到的不同关键词执行相应的分析过程,搜索是否包含MPI通信关键词;4)根据搜索到的不同的MPI通信关键词,将通信过程转换为点对点通信信息;5)最后将多个执行循环分析进程中的点对点通信信息整合到一起。2.根据权利要求1所述的方法,其特征在于,所述步骤1)包括初始化和获得关键通信变量的步骤:步骤(1.1)获得源代码文件和用户期望启动的实际进程数n;步骤(1.2)扫描MPI应用源代码,逐行进行词法分析;步骤(1.3)当解析到MPI_Comm_rank关键词函数时,将这个函数的第二个参数的变量名保存到一个变量中,这个变量名表示的是当前运行的进程号;步骤(1.4)当解析到MPI_Comm_size关键词时,将这个函数的第二个参数的变量名保存到一个变量中,这个变量名表示的是当前开启的实际进程数;步骤(1.5)当解析到while、for、if关键词语句时,在相应关键词语句的执行代码段中搜索是否包含MPI通信关键词,如果包含,那么将相应关键词语句的判断条件表达式中涉及的变量保存到一个全局列表中。3.根据权利要求2所述的方法,其特征在于,所述步骤2)包括以下步骤:步骤(2.1)按照当前模拟MPI任务的进程号将循环分析均匀分布到多个执行进程中进行分析,具体执行进程数可以由用户配置;步骤(2.2)开启一个进程池,池中运行的进程数大小可以由用户配置,然后运行步骤(3.1)中的多个进程,即对实际执行进程中包含的多个模拟MPI任务执行的循环进行分析;步骤(2.3)每次循环分析时首先将每个进程中保存着变量和对应值的字典清空,然后获得由#define定义的变量名和对应的值,保存到字典中,然后将获得的表示启动进程数的变量名和开启的进程数以键值对的形式保存在字典中,然后再将表示当前运行的进程号的变量名和当前循环的次数以键值对的形式保存在字典中。4.根据权利要求3所述的方法,其特征在于,所述步骤3)中,每次循环按以下步骤处理:步骤(3.1)从主函数的第一行开始,逐行进行词法分析;步骤(3.2)当根据赋值语句的特点解析到赋值语句时,首先取出赋值语句中的赋值变量A,如果A_keys,那么根据赋值号右边的变量的类型进行求值,然后将当前的赋值变量名和求出的结果以键值对的形式保存到字典中;否则这个赋值语句不做处理,继续从下一行开始分析;步骤(3.3)当解析到while关键词语句时,首先将while关键词语句之后的循环判断条件中的变量提取出来形成集合B,如果那么首先将while语句的循环判断条件表达式提取出来,然后使用逻辑表达式计算方法计算循环判断条件表达式的值,如果值为假,则直接跳过当前while语句循环体代码段的分析,返回当前while语句的循环体代码段在源代码文件中的结束行数;如果值为真,则将while语句循环体中的代码按照步骤4)逐行分析,分析完成之后再次计算循环判断条件表达式的值,直到值为假,返回当前while...

【专利技术属性】
技术研发人员:肖利民张锐闫柏成王志昊刘成春周易
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1