并行程序运行时参数优化方法与流程

文档序号:12786190阅读:251来源:国知局
并行程序运行时参数优化方法与流程

本发明涉及计算机技术领域,尤其涉及一种并行程序运行时参数优化方法。



背景技术:

MPI(Message Passing Interface)是由全世界工业、科研和政府部门联合建立的一个消息传递编程标准,提供了大多数并行应用与硬件之间的接口,是高性能计算领域并行程序开发的事实标准,被广泛应用于分布式以及共享内存系统。OpenMPI是一个基于组件结构的MPI具体实现,实现了MPI-1和MPI-2标准,并且是开源的。OpenMPI设计集中在the Modular Component Architecture(MCA),其是一个软件层,提供了对OpenMPI框架的管理服务。MCA提供的管理服务可以将从高层抽象(mpirun)接收的运行时参数传递到底层相应的框架。MCA运行时参数可以使系统管理员、终端用户以及开发者调优应用程序以及系统的性能,而不需要重新编译MPI应用程序。

在超算系统平台下的应用程序有很多,应用涉及多个领域,不同领域的用户利用相应的应用程序解决其研究问题。为了解决输入不同的问题,同一个应用程序会被用户反复执行。通过优化应用程序,可以提高其执行效率,从而提高超算系统平台的整体吞吐率。

集群计算环境,尽管成为了高性能计算平台的主要选择,但是其复杂性不断增加。在集群平台上MPI应用程序要获得很好的性能是很容易的,但是要获得最好的MPI性能仍然是一项异常困难的任务,需要对系统的软件、硬件的所有层次进行最大化调优。可调的运行时参数可以对MPI应用程序带来可观的性能提升,但同时运行时参数的配置集合以及相应的优化空间相当庞大,探索MPI应用程序的整个优化空间需要在大量参数组合下执行MPI应用程序,其执行次数随运行时参数的数量呈指数增长。目前,调优MPI应用程序运行时参数还没有较为完善的技术方案。



技术实现要素:

本发明的目的是提供一种并行程序运行时参数优化方法,可以获得并行程序在具体硬件平台下最优的参数组合,可以将该参数组合推荐给超算用户,使超算用户作业在该参数组合下运行,优化应用程序执行效率,从而提高超算系统平台整体吞吐率。

本发明的目的是通过以下技术方案实现的:

一种并行程序运行时参数优化方法,包括:

利用一次一因子实验方法进行预备实验,获得程序性能受单个参数变化的影响,从而筛选出对程序性能影响超出预定目标的参数及其参数值;

利用均匀实验方法,从预备实验筛选出的参数中粗筛选出当前最优的参数组合;

在粗筛选出最优的参数组合中的各参数取值附近再取一定量的参数值,并利用正交实验方法分析出各个参数及其参数值对实验指标的贡献大小,进而确定最终的最优参数组合。

所述实验指标为程序运行时间,并行程序的各个参数作为实验因素,并行程序的各个参数的不同取值作为对应实验因素的水平,各个实验因素在某个水平上进行取值得到的一组搭配情况作为实验点,对每个实验点依次进行实验,研究实验因素对实验指标的影响,从而确定最优参数组合,使并行程序在该最优参数组合下运行时间最少。

筛选出对程序性能影响超出预定目标的参数的步骤包括:

对每个参数选择初始参数值,即为每个可调参数赋予一个初始值;

在保持其他参数在初始参数值不变的条件下,让每一个参数在其所允许的范围内进行连续变动;

当所有的实验都做完后,获得程序性能受单个参数的水平变化的影响,从而筛选出对程序性能影响超出预定目标的参数及其参数值。

所述利用均匀实验方法从预备实验筛选出的参数中粗筛选出当前最优的参数组合的步骤包括:

根据所选参数的个数与各参数的参数值个数,确定相应的均匀表,进而确定实验方案;

根据实验方案,在每组参数的不同参数值组合下运行程序;

将最优的实验结果对应的参数组及其参数值,作为粗筛选出的当前最优的参数组合。

所述确定最终的最优参数组合的步骤包括:

针对粗筛选出最优的参数组合,各参数分别再取一定数量的参数值,所取的参数值在当前最优的参数组合中对应参数的参数值附近,所取的参数值作为对应参数的水平,再根据粗筛选出最优的参数组合中参数的个数与调整后的各参数的水平个数,确定相应的正交表,进而确定实验方案;

根据实验方案,在每组参数的不同参数值组合下运行程序;

计算性能增量,以性能增量作为参数对程序性能的贡献率,统计各个参数的不同参数值的贡献率,筛选出每一参数贡献率最高的参数值,并作为最终的最优参数组合,其中性能增量记为S=(t1-t2)/t2,t1为默认参数组合下程序运行时间,t2为优化参数组合下程序运行时间。

由上述本发明提供的技术方案可以看出,利用均匀实验方法,作粗筛选,可以有效地减少实验次数,同时获得了程序的特征数据。利用正交实验方法,作细筛选,可以有效地简化均匀实验结果的分析工作,同时可以进一步优化并行程序运行时参数组合。此外,本发明中的实验是在具体硬件平台下,针对特定应用程序进行的,实验数据可以很好地反应硬件平台以及应用程序的特征。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例提供的一种并行程序运行时参数优化方法的流程图;

图2为本发明实施例提供的通过预备实验筛选出对程序性能影响超出预定目标的参数的流程图;

图3为本发明实施例提供的通过均匀实验方法粗筛选出当前最优的参数组合的流程图;

图4为本发明实施例提供的通过正交实验方法确定最优参数组合的流程图。

具体实施方式

下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。

本发明的目的是提供一种并行程序运行时参数优化的方法,在集群平台上MPI应用程序要获得很好的性能是很容易的,但是要获得最好的MPI性能仍然是一项异常困难的任务,需要对系统的软件、硬件的所有层次进行最大化调优。本发明主要针对OpenMPI参数进行优化。虽然,超算系统下的应用程序有很多历史运行数据,但是这些数据并不涉及本发明所优化的OpenMPI参数,或者这些数据所涉及的OpenMPI参数并不全面,历史运行数据不能直接用于本发明。

如何在大量的参数组合中选择出可使并行程序运行时间最少的参数组合,既是一个理论问题,又是一个实际应用问题。这个问题其实是一个多因素实验问题,在本发明实施例中,程序运行时间可作为实验指标,OpenMPI各参数可作为实验因素,OpenMPI各参数的不同取值可作为对应因素的水平,各个实验因素在某个水平上进行取值得到的一组搭配情况可作为实验点,对每个实验点依次进行实验,研究实验因素对实验指标的影响,从而确定最优参数组合,使并行程序在该参数组合下运行时间最少。

该多因素实验问题满足如下特性:

1.实验因素的水平个数不等。

2.实验点有限,具有可操作性,即只能用有限的时间来完成实验。

本发明实施例提供的一种并行程序运行时参数优化方法如图1所示,其主要包括:

步骤11、利用一次一因子实验方法进行预备实验,获得程序性能受单个参数变化的影响,从而筛选出对程序性能影响超出预定目标的参数以及相应的参数值。

本发明实施例中,所述并行程序的MPI接口的具体实现为OpenMPI,由于OpenMPI参数有许多,在特定的硬件环境下,有些参数对并行程序性能有影响,有些参数没有影响。利用一次一因子实验方法进行预备实验,可以反映出程序性能如何受单个参数的水平(参数值)变化的影响,从而优选出一些对并行程序性能有较大影响(即对程序性能影响超出预定目标)的参数。

本步骤的具体过程如图2所示,主要过程如下:

对每个参数(实验因素)选择初始参数值(初始水平),即为每个可调参数赋予一个初始值;

在保持其他参数在初始参数值不变的条件下,让每一个参数在其所允许的范围内进行连续变动;

当所有的实验都做完后,获得程序性能受单个参数的参数值变化的影响,从而筛选出对程序性能影响超出预定目标的参数以及相应的参数值。

步骤12、利用均匀实验方法,从预备实验筛选出的参数中粗筛选出当前最优的参数组合。

对于预备实验选择的OpenMPI参数,部分参数取值连续,取值范围很大,从中可以取多个值作为该参数的水平,并行程序在这些参数的不同组合下可能会表现出更优的性能,由于一次一因子实验的实验点仅局限于局部区域,不能反映参数组合的全面情况,而要穷举出所有的参数组合会是指数时间,这又使得实验不具有可操作性。如果利用正交实验方法优化并行程序的OpenMPI参数,虽然其实验点代表性强,可以反映参数组合的全面情况,不过其实验次数为参数的水平个数的平方,对于参数的水平个数比较多且耗时较多的并行程序,完成实验所需的时间依然无法承受。而如果利用均匀实验方法优化并行程序的OpenMPI参数,其实验点分散均匀,可以反映参数组合的全面情况,同时其实验次数与参数的水平个数相同,大大减少了实验次数,缩短了实验时间。因此,本发明实施例中利用均匀实验在很大范围内进行筛选。

本步骤的具体过程如图3所示,主要过程如下:

根据所选参数的个数与各参数的参数值个数(水平个数),确定相应的均匀表,进而确定实验方案。

根据实验方案,在每组参数的不同参数值组合下运行程序;

将最优的实验结果对应的参数组及其参数值,作为粗筛选出的当前最优的参数组合。

通过上述均匀实验方法可以粗筛选出当前最优的参数组合,其包含了若干参数以及每一参数对应的参数值(即水平)。

均匀实验中所用到的均匀表是利用数论中的一致分布理论精心设计,而且应用数论方法使实验点在积分范围内散布得十分均匀,并使分布点离被积函数的各种值充分接近,便于计算机统计建模。均匀表具有如下性质:

1.每个实验因素的每个水平做一次且仅做一次实验。

2.任两个实验因素的实验点点在平面的格子点上,每行每列有且仅有一个实验点。

3.任两列组成的实验方案一般并不等价。

步骤13、针对粗筛选出最优的参数组合,各参数分别再取一定数量的参数值,所取的参数值在该最优参数组合中对应参数的参数值附近,所取的参数值作为对应参数的水平,并利用正交实验方法分析出各个参数及其参数值对实验指标的贡献大小,进而确定最终的最优参数组合。

均匀实验的结果分析要利用回归模型,对研究人员要求高,需要具备相当的数理统计知识,而回归模型到底好不好,还要看实际效果。为了简化均匀实验的分析工作,同时由于均匀实验的实验点分散均匀,实验中的最优参数组合离全局最优的参数组合不是很远,所以对粗筛选得到的实验中当前最优的参数组合,在其参数水平附近再取少量的水平,设计正交实验,作细筛选。通过简单的直观分析就可以分析出各参数及其参数值对实验指标的贡献大小,进而确定最终的最优参数组合。

本步骤的具体过程如图4所示,主要过程如下:

针对粗筛选出最优的参数组合,各参数分别再取一定数量的参数值,所取的参数值在当前最优参数组合中对应参数的参数值附近(即预定范围),所取的参数值作为对应参数的水平,再根据最优的参数组合中参数的个数与调整后的各参数的参数值个数,确定相应的正交表,进而确定实验方案;

根据实验方案,在每组参数的不同参数值组合下运行程序;

计算性能增量,以性能增量作为参数对程序性能的贡献率,统计各个参数的不同参数值的贡献率,筛选出每一参数贡献率最高的参数值,并作为最终的最优参数组合,其中性能增量记为S=(t1-t2)/t2,t1为默认参数组合下程序运行时间,t2为优化参数组合下程序运行时间。

正交实验中所用到的正交表满足如下性质:

1.任一因素占据一列位置。

2.正交性:任一列中不同水平个数相同,正交表中任意两列横向各数码搭配所出现的次数相同。

正交表的正交性使得正交实验具有如下特点:

1.均衡分散:实验点在实验范围内散布均匀,具有代表性。

2.整齐可比:实验点在实验范围内排列规律整齐,可以用数理统计方法对实验结果进行处理。

本发明实施例中,在前述步骤11处理后,参数的种类与数目已经确定,后续的粗筛选、细筛选过程主要是确定各参数的最优参数值,参数的种类与数目并不会发生变化。

本发明实施例上述方案,利用均匀实验方法,作粗筛选,可以有效地减少实验次数,同时获得了程序的特征数据。利用正交实验方法,作细筛选,可以有效地简化均匀实验结果的分析工作,同时可以进一步优化并行程序运行时参数组合。其中,本发明中的实验是在具体硬件平台下,针对特定应用程序进行的,实验数据可以很好地反应硬件平台以及应用程序的特征。

通过本发明的技术方案,可以获得并行程序在具体硬件平台下最优的参数组合,可以将该参数组合推荐给超算用户,使超算用户作业在该参数组合下运行,优化应用程序执行效率,从而提高超算系统平台整体吞吐率。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1