【技术实现步骤摘要】
预测MPI程序运行时间的方法
本专利技术涉及程序性能预测
,尤其涉及一种预测MPI程序运行时间的方法。
技术介绍
在超级计算机系统(以下简称超算系统)的运行过程中,其作业调度系统负责对用户提交的作业进行作业调度操作,为了提高系统的整体利用效率,调度系统需要得知作业的运行时间以更好的安排作业队列。而在超级计算机系统中运行的作业程序通常为MPI程序,因此如何对MPI程序进行运行时间预测得到了越来越多的关注。目前在超算系统中常用的方法为经验估计,即根据用户以往提交的程序的运行时间估计之后用户提交的程序的运行时间。这种方法针对重复运行的用户程序具有一定的效果,但是难以对大部分程序产生应有的预测效果。此外,有其他研究人员提出了其他预测方法,可以分为基于数学模型的分析和基于运行数据的分析两种。基于数学模型的分析即通过分析程序本身的数学模型,结合实际运行系统的特性,得出程序的最终运行模型,从而能够对程序的运行时间进行细致的分析。但是这种方法对于研究人员的要求非常高,通常要求研究者同时具备多个领域的专业知识背景,并且研究过程较为耗时。此外,当程序发生变更,或者运行环境发生改变,就必须重新对程序进行建模。基于运行数据的分析,根据数据的获取途径不同,可以分为若干种不同的技术,如基于基准程序、基于程序运行状态采样、基于骨架程序、基于代码插装技术等等。基于基准程序的预测技术主要用于更换运行环境后的程序性能预测,即使用一组基准程序作为比较对象,测出基准程序在不同运行环境下的性能变化,以此估计待测程序的性能变化。这种技术易于实行,但是基准程序的代表性的优劣决定了最终的预测准确度 ...
【技术保护点】
一种预测MPI程序运行时间的方法,其特征在于,包括:对待预测的MPI程序中的待处理语句进行定位;在待处理语句中需要计数的语句之后加入计数语句,并且,在待处理语句中的MPI函数之后加入MPI特征数据计数语句;根据加入的计数语句与MPI特征数据计数语句,生成变量,并写入头文件中,进而获得处理后的MPI程序;根据头文件中的变量名自动生成用于输出计数值的语句,并且对处理后的MPI程序运行过程中,各个节点产生的MPI特征数据进行整合操作;根据处理后的MPI程序输出的计数值和整合后的MPI特征数据,获得预测模型;使用处理后的MPI程序获取待预测的MPI程序的运行特征数据,并输入所述预测模型中,最终获得待预测的MPI程序运行时间的预测值。
【技术特征摘要】
1.一种预测MPI程序运行时间的方法,其特征在于,包括:对待预测的MPI程序中的待处理语句进行定位;在待处理语句中需要计数的语句之后加入计数语句,并且,在待处理语句中的MPI函数之后加入MPI特征数据计数语句;根据加入的计数语句与MPI特征数据计数语句,生成变量,并写入头文件中,进而获得处理后的MPI程序;根据头文件中的变量名自动生成用于输出计数值的语句,并且对处理后的MPI程序运行过程中,各个节点产生的MPI特征数据进行整合操作;根据处理后的MPI程序输出的计数值和整合后的MPI特征数据,获得预测模型;使用处理后的MPI程序获取待预测的MPI程序的运行特征数据,并输入所述预测模型中,最终获得待预测的MPI程序运行时间的预测值。2.根据权利要求1所述的一种预测MPI程序运行时间的方法,其特征在于,所述对待预测的MPI程序中的待处理语句进行定位包括:使用LibTooling工具库,采用其提供的VisitStmt函数,配合isa<ForStmt>、isa<DoStmt>和isa<WhileStmt>三个函数来定位三种循环语句,配合isa<IfStmt>函数定位条件分支语句;使用工具库中提供的VisitCall函数,配合工具库中的CallEpxr.getDirectCallee和FunctionDecl.getNameAsString函数并利用MPI函数名实现对MPI函数的定位。3.根据权利要求1所述的一种预测MPI程序运行时间的方法,其特征在于,所述在待处理语句中需要计数的语句之后加入计数语句包括:需要计数的语句为待处理语句中的循环语句与条件分支语句;在获取到循环语句与条件分支的位置后,首先根据位置信息进行计数变量名称的生成,同时在对应的位置后部插入计数语句,用于程序运行时进行计数。4.根据权利要求3所述的一种预测MPI程序运行时间的方法,其特征在于,在插入计数语句过程中,需要对插入位置进行判断;在处理循环语句时,首先判断循环语句是否被大括号包裹,若否,则需要手动添加大括号;判断的方法是使用isa方法检测循环语句是否为CompoundStmt类型,如果是,则说明循环语句已经包含在大括号中,否则需要使用Lexer::MeasureTokenLength(),Stmt.getLocStart()和Stmt.getLocEnd()方法结合,为循环语句加入大括号;对于条件分支语句,需要分别对Then和Else部分进行判断,其他操作与循环语句操作相同。5.根据权利要求1所述的一种预测MPI程序运行时间的方法,其特征在于,在待处理语句中的MPI函数之后加入MPI特征数据计数语句包括:...
【专利技术属性】
技术研发人员:孙广中,詹石岩,孙经纬,
申请(专利权)人:中国科学技术大学,
类型:发明
国别省市:安徽,34
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。