一种应用于并行科学计算程序的细粒度性能建模方法技术

技术编号:28421030 阅读:23 留言:0更新日期:2021-05-11 18:28
本发明专利技术公开了一种应用于并行科学计算程序的细粒度性能建模方法,其具体步骤如下:获取程序所有的自定义函数名和MPI通信函数名,以及程序在一系列并行度下,各个自定义函数自身的计算时间和MPI通信函数的通信时间;逐一对自定义函数和MPI通信函数选择不同类型的基函数,进行拟合得到该函数的性能模型;将所有建模结果聚合,得到程序整体的性能模型。本发明专利技术的一种应用于并行科学计算程序的细粒度性能建模方法,专注于研究程序进程数量分配对程序运行时间的影响,对自定义函数和MPI通信函数分别建模,MPI通信函数又分为四类使用不同的基函数进行建模,然后再将建模结果进一步聚合,从而得到程序的整体模型,使得性能建模粒度更小,建模效果更好。

【技术实现步骤摘要】
一种应用于并行科学计算程序的细粒度性能建模方法
本专利技术涉及计算机性能建模领域,尤其涉及一种应用于并行科学计算程序的细粒度性能建模方法。
技术介绍
科学计算是一个利用计算机来分析和解决科学问题的综合交叉领域,在许多科学学科和高科技应用领域都发挥着十分重要的作用。在实际的科学研究中,常常会遇到大量复杂的数学计算问题,这些问题用普通的计算工具来解决非常困难,而使用计算机来处理就会非常容易。因此产生了许多科学计算应用程序和软件,这些应用主要的功能就是通过计算机来模拟科学学科中计算问题,比如有通过数值模拟来预测地震、海啸和其他自然灾害的科学计算应用,还有通过分子建模来研究生物分子和开发新化合物的科学计算应用,除此之外,科学计算在流体力学、生物信息学、化学计量学、地球物理学等领域都有广泛的应用。科学计算的特点是计算公式复杂、计算量大、数值变化大,这要求所需的计算机系统拥有很强的计算能力,因此往往运行在高性能计算平台上。高性能计算平台包含了多个计算节点,节点之间通过MPI等方式进行通信。并行技术可以同时使用多个计算节点,加快运算速度。通过并行技术开发的科学计算程序即为并行科学计算程序。例如,NPB(NAS并行基准测试)是一套用来对超级计算机进行性能评估的并行科学计算程序。该程序来自于计算流体动力学的应用程序,包含有5个内核程序和3个伪应用程序,程序的规模大小预先定义,并被分成了不同类别。此外,地球系统模式也是十分具有代表性的并行科学计算程序,其主要用于量化地球变化规律以及人类活动与地球变化的关系。其中,CAS-ESM(中国科学院地球系统模式)是一款由中国科学院发布的,具有先进性,使用广泛的地球系统模式。CAS-ESM将独立的模式分量,如大气环流模式、海洋环流模式、陆表过程模式、海冰模式、植被动力学模式、气溶胶和大气化学模式、海洋生物地球化学模式、陆表生物地球化学模式等,利用耦合器进行耦合,形成一个计算量巨大的复杂系统。然而,即使各种高性能计算平台的计算能力在迅猛发展,并行科学计算程序的机器利用率却日益下降,程序的实际性能峰值甚至达不到机器峰值的20%,这说明科学计算应用程序的性能往往有很大的优化空间。性能建模技术是一种特殊的性能分析手段,通过对科学计算应用程序的性能建模来预测程序在指定配置下的运行时间,从而找出程序的性能问题,并进一步对程序进行优化,提高机器利用率。以CAS-ESM为例,气候变化是一个长期的过程,当利用CAS-ESM对全球气候变化进行模拟时通常需要上百年的时间,并且需要巨大的计算资源。但由于CAS-ESM系统的复杂性,不同模块在不同场景中所需的资源往往不相同,且具有不同的性能特征。通过对CAS-ESM进行性能建模可以建立合理的资源分配方案,充分利用现有的计算能力,从而优化系统性能。性能建模主要分为计算性能建模和通信性能建模。计算性能建模可以分为分析型性能建模和经验型性能建模,分析型性能建模是从算法或程序上进行分析,如Samuel等人提出的RooflineModel;经验型性能建模不关注程序本身的实现,而是根据输入输出总结规律,从而归纳出模型,如使用多元回归方法建模。通信性能建模主要有哈佛大学计算机科学家Viliant提出的BSP模型、LogP家族模型、Hockney模型等。由于这些模型只能从整体上对程序进行建模,其建模过程粒度较粗,难于应对复杂应用程序,且模型构建复杂,程序的关键特征并不能全部体现。
技术实现思路
有鉴于现有技术的上述缺陷,本专利技术所要解决的技术问题是现有针对地球系统模式的建模方法过程粒度较粗,难于应对复杂应用程序,且较模型构建复杂,程序的关键特征不能全部体现。因此,本专利技术提出了一种应用于并行科学计算程序的细粒度性能建模方法,专注于研究程序进程数量分配对程序运行时间的影响,对自定义函数和MPI通信函数分别建模,MPI通信函数又分为四类使用不同的基函数进行建模,然后再将建模结果进一步聚合,从而得到程序的整体模型,使得性能建模粒度更小,建模效果更好。为实现上述目的,本专利技术提供了一种应用于并行科学计算程序的细粒度性能建模方法,包括以下步骤:步骤1:首先获取并行科学计算程序中所有的自定义函数名和MPI通信函数名,以及程序在一系列并行度下,各个自定义函数自身的计算时间和MPI通信函数的通信时间;步骤2:根据MPI通信函数的通信方式,对所述MPI通信函数进行分类;步骤3:对不同类型的MPI通信函数分别选择不同的针对MPI通信的基函数;步骤4:对自定义函数选择针对普通计算的基函数;步骤5:对步骤3中不同类型的MPI通信函数分别选择不同的针对MPI通信的基函数进行最小二乘法拟合,得到MPI通信函数的性能模型;对自定义函数选择针对普通计算的基函数进行最小二乘法拟合,得到自定义函数的性能模型;重复步骤3-步骤5,直到枚举完全部的自定义函数和MPI通信函数,得到全部的MPI通信函数的性能模型和自定义函数的性能模型;步骤6:将所有自定义函数的性能模型和MPI通信函数的性能模型聚合,获得程序的整体性能模型。进一步地,对MPI通信函数进行分类包括:阻塞的点到点通信函数、非阻塞的点到点通信函数、n到n的集合通信函数、n到1的集合通信函数。进一步地,步骤1中获取的并行科学计算程序中所有的自定义函数名和MPI通信函数名,以及程序在一系列并行度下,各个自定义函数自身的计算时间和MPI通信函数的通信时间,设置为一系列三元组<函数名,并行度,时间>。进一步地,阻塞的点到点通信函数的基函数为:y=axb+c*log2(x)+d其中y为预测时间,x为并行度,a、b、c、d为待拟合参数,待拟合参数是需要通过后续拟合获取的拟合值。进一步地,非阻塞的点到点通信函数的基函数为:y=ax-b+cxd+e其中y为预测时间,x为并行度,a、b、c、d、e为待拟合参数。进一步地,n到n的集合通信函数的基函数为:y=a*logk(x)+f*(bxc+d)+e其中集合通信函数使用了k叉树,y为预测时间,x为并行度,a、b、c、d、e、f为待拟合参数。进一步地,n到1的集合通信函数的基函数为:y=(axb+c)·logk(x)+d其中集合通信函数使用了k叉树,y为预测时间,x为并行度,a、b、c、d为待拟合参数。进一步地,步骤4中针对普通计算的第二基函数为:y=ax-b+cxd+e其中y为预测时间,x为并行度,a、b、c、d、e均为待拟合参数。进一步地,步骤6中聚合所有模型是指,在拟合后将程序中所有函数的性能模型相加,从而得到程序的整体模型。本专利技术的一种应用于并行科学计算程序的细粒度性能建模方法可以对复杂程序建立整体性能模型,该模型基于复杂程序的所有函数的性能模型获得,粒度较细,模型较简单。通过使用程序整体性能模型,可以获取复杂程序的关键特征,并预测程序在不同进程数下的运行时间。以下将结合附图对本专利技术的构思、具体结本文档来自技高网
...

【技术保护点】
1.一种应用于并行科学计算程序的细粒度性能建模方法,其特征在于,包括以下步骤:/n步骤1:首先获取并行科学计算程序中所有的自定义函数名和MPI通信函数名,以及程序在一系列并行度下,各个自定义函数自身的计算时间和MPI通信函数的通信时间;/n步骤2:根据MPI通信函数的通信方式,对所述MPI通信函数进行分类;/n步骤3:对不同类型的所述MPI通信函数分别选择不同的针对MPI通信的基函数;/n步骤4:对所述自定义函数选择针对普通计算的基函数;/n步骤5:对所述步骤3中不同类型的所述MPI通信函数分别选择不同的针对MPI通信的基函数进行最小二乘法拟合,得到MPI通信函数的性能模型;对所述自定义函数选择针对普通计算的基函数进行最小二乘法拟合,得到自定义函数的性能模型;重复步骤3-步骤5,直到枚举完全部的自定义函数和MPI通信函数,得到全部的所述MPI通信函数的性能模型和所述自定义函数的性能模型;/n步骤6:将所有所述自定义函数的性能模型和所述MPI通信函数的性能模型聚合,获得程序的整体性能模型。/n

【技术特征摘要】
1.一种应用于并行科学计算程序的细粒度性能建模方法,其特征在于,包括以下步骤:
步骤1:首先获取并行科学计算程序中所有的自定义函数名和MPI通信函数名,以及程序在一系列并行度下,各个自定义函数自身的计算时间和MPI通信函数的通信时间;
步骤2:根据MPI通信函数的通信方式,对所述MPI通信函数进行分类;
步骤3:对不同类型的所述MPI通信函数分别选择不同的针对MPI通信的基函数;
步骤4:对所述自定义函数选择针对普通计算的基函数;
步骤5:对所述步骤3中不同类型的所述MPI通信函数分别选择不同的针对MPI通信的基函数进行最小二乘法拟合,得到MPI通信函数的性能模型;对所述自定义函数选择针对普通计算的基函数进行最小二乘法拟合,得到自定义函数的性能模型;重复步骤3-步骤5,直到枚举完全部的自定义函数和MPI通信函数,得到全部的所述MPI通信函数的性能模型和所述自定义函数的性能模型;
步骤6:将所有所述自定义函数的性能模型和所述MPI通信函数的性能模型聚合,获得程序的整体性能模型。


2.如权利要求1所述的一种应用于并行科学计算程序的细粒度性能建模方法,其特征在于,对所述MPI通信函数进行分类包括:阻塞的点到点通信函数、非阻塞的点到点通信函数、n到n的集合通信函数、n到1的集合通信函数。


3.如权利要求1所述的一种应用于并行科学计算程序的细粒度性能建模方法,其特征在于,所述步骤1中获取的并行科学计算程序中所有的自定义函数名和MPI通信函数名,以及程序在一系列并行度下,各个自定义函数自身的计算时间和MPI通信函数的通信时间,设置为一系列三元组<函数名,并行度,时间>。


4.如权利要求2所述的一...

【专利技术属性】
技术研发人员:刘垚焦鹏龙薛巍杨磊赵景元张忆莲樊树伟苏巨亮
申请(专利权)人:华东师范大学无锡恒鼎超级计算中心有限公司
类型:发明
国别省市:上海;31

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

1