CN112784422B - 一种应用于并行科学计算程序的细粒度性能建模方法 - Google Patents
一种应用于并行科学计算程序的细粒度性能建模方法 Download PDFInfo
- Publication number
- CN112784422B CN112784422B CN202110115720.2A CN202110115720A CN112784422B CN 112784422 B CN112784422 B CN 112784422B CN 202110115720 A CN202110115720 A CN 202110115720A CN 112784422 B CN112784422 B CN 112784422B
- Authority
- CN
- China
- Prior art keywords
- function
- mpi
- program
- functions
- communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种应用于并行科学计算程序的细粒度性能建模方法,其具体步骤如下:获取程序所有的自定义函数名和MPI通信函数名,以及程序在一系列并行度下,各个自定义函数自身的计算时间和MPI通信函数的通信时间;逐一对自定义函数和MPI通信函数选择不同类型的基函数,进行拟合得到该函数的性能模型;将所有建模结果聚合,得到程序整体的性能模型。本发明的一种应用于并行科学计算程序的细粒度性能建模方法,专注于研究程序进程数量分配对程序运行时间的影响,对自定义函数和MPI通信函数分别建模,MPI通信函数又分为四类使用不同的基函数进行建模,然后再将建模结果进一步聚合,从而得到程序的整体模型,使得性能建模粒度更小,建模效果更好。
Description
技术领域
本发明涉及计算机性能建模领域,尤其涉及一种应用于并行科学计算程序的细粒度性能建模方法。
背景技术
科学计算是一个利用计算机来分析和解决科学问题的综合交叉领域,在许多科学学科和高科技应用领域都发挥着十分重要的作用。在实际的科学研究中,常常会遇到大量复杂的数学计算问题,这些问题用普通的计算工具来解决非常困难,而使用计算机来处理就会非常容易。因此产生了许多科学计算应用程序和软件,这些应用主要的功能就是通过计算机来模拟科学学科中计算问题,比如有通过数值模拟来预测地震、海啸和其他自然灾害的科学计算应用,还有通过分子建模来研究生物分子和开发新化合物的科学计算应用,除此之外,科学计算在流体力学、生物信息学、化学计量学、地球物理学等领域都有广泛的应用。
科学计算的特点是计算公式复杂、计算量大、数值变化大,这要求所需的计算机系统拥有很强的计算能力,因此往往运行在高性能计算平台上。高性能计算平台包含了多个计算节点,节点之间通过MPI等方式进行通信。并行技术可以同时使用多个计算节点,加快运算速度。通过并行技术开发的科学计算程序即为并行科学计算程序。
例如,NPB(NAS并行基准测试)是一套用来对超级计算机进行性能评估的并行科学计算程序。该程序来自于计算流体动力学的应用程序,包含有5个内核程序和3个伪应用程序,程序的规模大小预先定义,并被分成了不同类别。此外,地球系统模式也是十分具有代表性的并行科学计算程序,其主要用于量化地球变化规律以及人类活动与地球变化的关系。其中,CAS-ESM(中国科学院地球系统模式)是一款由中国科学院发布的,具有先进性,使用广泛的地球系统模式。CAS-ESM将独立的模式分量,如大气环流模式、海洋环流模式、陆表过程模式、海冰模式、植被动力学模式、气溶胶和大气化学模式、海洋生物地球化学模式、陆表生物地球化学模式等,利用耦合器进行耦合,形成一个计算量巨大的复杂系统。
然而,即使各种高性能计算平台的计算能力在迅猛发展,并行科学计算程序的机器利用率却日益下降,程序的实际性能峰值甚至达不到机器峰值的20%,这说明科学计算应用程序的性能往往有很大的优化空间。
性能建模技术是一种特殊的性能分析手段,通过对科学计算应用程序的性能建模来预测程序在指定配置下的运行时间,从而找出程序的性能问题,并进一步对程序进行优化,提高机器利用率。以CAS-ESM为例,气候变化是一个长期的过程,当利用CAS-ESM对全球气候变化进行模拟时通常需要上百年的时间,并且需要巨大的计算资源。但由于CAS-ESM系统的复杂性,不同模块在不同场景中所需的资源往往不相同,且具有不同的性能特征。通过对CAS-ESM进行性能建模可以建立合理的资源分配方案,充分利用现有的计算能力,从而优化系统性能。
性能建模主要分为计算性能建模和通信性能建模。计算性能建模可以分为分析型性能建模和经验型性能建模,分析型性能建模是从算法或程序上进行分析,如Samuel等人提出的Roofline Model;经验型性能建模不关注程序本身的实现,而是根据输入输出总结规律,从而归纳出模型,如使用多元回归方法建模。通信性能建模主要有哈佛大学计算机科学家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是本发明的一种应用于并行科学计算程序的细粒度性能建模方法的流程示意图;
图2是本发明的一个较佳实施例NPB中SP算例的非阻塞的集合点对点通信函数MPI_Isend的建模结果;
图3是本发明的一个较佳实施例NPB中SP算例的n到n的集合通信函数MPI_Allreduce的建模结果;
图4是本发明的一个较佳实施例NPB中SP算例的n到1的集合通信函数MPI_Bcast的建模结果;
图5是本发明的一个较佳实施例NPB中SP算例的自定义函数x_slove的建模结果。
图6是本发明的一个较佳实施例CAS-ESM中FAMIPC5算例的大气环流模式的阻塞的集合点对点通信函数MPI_Send的建模结果;
图7是本发明的一个较佳实施例CAS-ESM中FAMIPC5算例的大气环流模式的非阻塞的集合点对点通信函数MPI_Isend的建模结果;
图8是本发明的一个较佳实施例CAS-ESM中FAMIPC5算例的大气环流模式的n到n的集合通信函数MPI_Allreduce的建模结果;
图9是本发明的一个较佳实施例CAS-ESM中FAMIPC5算例的大气环流模式的n到1的集合通信函数MPI_Barrier的建模结果;
图10是本发明的一个较佳实施例CAS-ESM中FAMIPC5算例的大气环流模式的自定义函数radsw_rad_rrtmg_sw_的建模结果。
具体实施方式
本发明提出了一种应用于并行科学计算程序的细粒度性能建模方法,从程序函数粒度对并行科学计算程序进行细粒度性能建模,如图1所示,包括以下步骤:
步骤1:获取并行科学计算程序所有的自定义函数名和MPI通信函数名,以及程序在一系列并行度下,各个自定义函数自身的计算时间和MPI通信函数的通信时间,数据形式如<函数名,并行度,时间>。
步骤2:根据MPI通信函数的通信方式,对MPI通信函数进行分类,包括:阻塞的点到点通信函数、非阻塞的点到点通信函数、n到n的集合通信函数、n到1的集合通信函数。
步骤3:对不同类型的MPI通信函数分别选择不同的针对MPI通信的基函数:
a)阻塞的点对点通信函数是实现MPI点对点通信的方式之一,其特点是程序设计简单,不容易造成死锁,并且函数会等待操作完成后再返回。阻塞通信函数的函数名有MPI_Send、MPI_Recv、MPI_Sendrecv等。对阻塞的点对点通信函数进行性能建模的基函数为:
y=axb+c*log2(x)+d
其中y为预测时间,x为并行度,a、b、c、d为待拟合参数。其中,待拟合参数是需要通过后续拟合获取的拟合值。
b)非阻塞的点对点通信函数也是实现MPI点对点通信的方式之一,与阻塞的点对点通信函数不同的是,它将计算与通信重叠,大大提高了程序执行的效率,而非阻塞的点对点通信函数的返回并不意味着通信完成,而是在调用后立刻返回。非阻塞的点对点通信函数的函数名有MPI_Isend、MPI_Irecv等。对非阻塞的点对点通信函数进行性能建模的基函数为:
y=ax-b+cxd+e
其中y为预测时间,x为并行度,a、b、c、d、e为待拟合参数。
c)区别于点对点通信,集合通信是指一个通信器内所有进程都参与的通信,在n到n的集合通信中,每一个进程都会向其他进程发送消息或接受消息。n到n的集合通信函数对n到n的集合通信函数进行性能建模的基函数为
y=a*logk(x)+f*(bxc+d)+e
其中集合通信函数使用了k叉树,y为预测时间,x为并行度,a、b、c、d、e、f为待拟合参数。
d)n到1的集合通信是指在一个通信器内一个进程向所有其他进程发送消息或接受消息。对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均为待拟合参数。
步骤5:对所有自定义函数或MPI通信函数使用其对应的基函数进行最小二乘法拟合,得到所有自定义函数和MPI通信函数的性能模型。
步骤6:将所有自定义函数和MPI通信函数的性能模型求和聚合,获得程序的整体性能模型。
本发明的一种应用于并行科学计算程序的细粒度性能建模方法,专注于研究程序进程数量分配对程序运行时间的影响,对自定义函数和MPI通信函数分别建模,MPI通信函数又分为四类使用不同的基函数进行建模,然后再将建模结果进一步聚合,从而得到程序的整体模型,使得性能建模粒度更小,建模效果更好。
实施例1
以下将以NPB(NAS并行基准测试)中SP算例程序为例,使用本发明对其进行性能建模。具体步骤如下:
1)获取SP算例所有的自定义函数名和MPI通信函数名、获取程序分别在4,9,16,25,36,49,64,81,100进程下,各个自定义函数自身的计算时间和MPI通信函数的通信时间。共采集了27个函数,部分数据如表1所示(单位:秒);
表1
并行度 | MPI_Allreduce | MPI_Bcast | MPI_Isend | x_solve | y_solve |
4 | 0.010117 | 0.000070 | 0.085315 | 114.559 | 123.971 |
9 | 0.009811 | 0.000022 | 0.137675 | 51.81206 | 59.26359 |
16 | 0.003934 | 0.001932 | 0.262607 | 29.53477 | 34.5999 |
25 | 0.00207 | 0.004143 | 0.230313 | 20.05024 | 26.04936 |
36 | 0.003609 | 0.000296 | 0.215583 | 15.79905 | 19.42535 |
49 | 0.00247 | 0.008246 | 0.360357 | 11.03905 | 14.38295 |
64 | 0.111524 | 0.010663 | 0.467772 | 9.920407 | 11.77196 |
81 | 0.012856 | 0.011961 | 0.418604 | 6.829234 | 9.415128 |
100 | 0.006393 | 0.016603 | 0.518725 | 5.582324 | 6.721216 |
2)根据MPI通信函数的通信方式,对MPI通信函数进行分类,包括:非阻塞的点到点通信函数、n到n的集合通信函数、n到1的集合通信函数,表2展示了部分MPI通信函数的分类结果。通过实验发现,SP算例中没有阻塞的点到点通信。
表2
函数名 | 分类 |
MPI_Isend | 非阻塞通信函数 |
MPI_Irecv | 非阻塞通信函数 |
MPI_Allreduce | n到n的集合通信函数 |
MPI_Bcast | n到1集合通信函数 |
MPI_Barrier | n到1集合通信函数 |
MPI_Reduce | n到1集合通信函数 |
…… | …… |
3)对不同类型的MPI通信函数选择不同的针对MPI通信的基函数:
a)对非阻塞的点到点通信函数MPI_Isend,选择的基函数为:
y=ax-b+cxd+e (公式1)
其中y为预测时间,x为并行度,a、b、c、d、e为待拟合参数。
b)对n到n的集合通信函数MPI_Allreduce,选择的基函数为:
y=a*log2(x)+f*(bxc+d)+e (公式2)
其中集合通信函数使用了2叉树,y为预测时间,x为并行度,a、b、c、d、e、f为待拟合参数。
c)对n到1的集合通信函数MPI_Bcast,选择的基函数为:
y=(axb+c)·log2(x)+d (公式3)
其中集合通信函数使用了2叉树,y为预测时间,x为并行度,a、b、c、d为待拟合参数。
d)对自定义函数x_slove选择针对普通计算的基函数,针对普通计算函数的基函数为:
y=ax-b+cxd+e (公式4)
其中y为预测时间,x为并行度,a、b、c、d、e为待拟合参数。
4)使用最小二乘法进行拟合:
a)对于非阻塞通信函数MPI_Isend,得到拟合参数a=-0.10103181,b=1,c=0.0905947,d=0.3940228,e=-0.04799487,代入基函数公式1,得到该程序中非阻塞的点对点通信函数MPI_Isend的性能模型:
y=(-0.10103181)x-1+(0.0905947)x0.3940228+(-0.04799487)
拟合结果如图2所示。
b)对于n到n的集合通信函数MPI_Allreduce,得到拟合参数a=-3.17526695e-03,b=1.30615460e-05,c=1.748878,d=4.27653063e-01,e=-8.89411529e-02,f=2.48477445e-01,代入基函数公式2,得到该程序中n对n的集合通信函数MPI_Allreduce的性能模型:
y=(-3.17526695e-03)*log2(x)+2.48477445e-01*((1.30615460e-05)x1.748878+(4.27653063e-01))+(-8.89411529e-02)
拟合结果如图3所示。
c)对于n到1的集合通信函数MPI_Bcast,得到拟合参数a=3.79047529e-04,b=4.75586158e-01,c=-1.07798393e-03,d=5.55339198e-04,代入基函数公式3,得到该程序中n到1的集合通信函数MPI_Barrier的性能模型:
y=((0.09310688)x4.75586158e-01+(-1.07798393e-03))·log2(x)+5.55339198e-04
拟合结果如图4所示。
d)对于自定义函数x_slove,得到拟合参数a=446.282640,b=1,c=2072.65152,d=-1.46350263e-04,e=-206.943649,代入基函数公式4,得到该程序中自定义函数x_slove的性能模型:
y=(446.282640)x-1+(2072.65152)x-1.46350263e-04+(-206.943649)
拟合结果如图5所示。
将所有自定义函数和MPI通信函数的性能模型求和聚合,获得程序的整体性能模型。
实施例2
以下将以CAS-ESM(中国科学院地球系统模式)中FAMIPC5算例的大气环流模式为例,使用本发明对其进行性能建模。具体步骤:
1)获取FAMIPC5算例的大气环流模式程序所有的自定义函数名和MPI通信函数名、获取程序分别在4,8,16,32,64,128,192,256,384,512进程下,各个自定义函数自身的计算时间和MPI通信函数的通信时间。共采集了102个函数,部分数据如表3所示(时间单位:秒);
表3
并行度 | MPI_Send | MPI_Isend | MPI_Allreduce | MPI_Barrier | radsw_rad_rrtmg_sw_ |
4 | 8.43E-06 | 1.546996 | 0.980716 | 13.05118 | 9.514441 |
8 | 1.4E-05 | 2.005877 | 1.556136 | 10.97189 | 5.275145 |
16 | 2.19E-05 | 1.554734 | 2.085115 | 10.56881 | 2.606078 |
32 | 4.45E-05 | 1.214811 | 2.048449 | 9.766511 | 1.392424 |
64 | 0.051432 | 0.675531 | 21.33542 | 9.09157 | 0.678591 |
128 | 0.077211 | 0.425914 | 28.43031 | 9.730503 | 0.339121 |
192 | 0.098714 | 0.366936 | 35.61699 | 9.650565 | 0.172931 |
256 | 0.138485 | 0.323806 | 37.91074 | 10.32865 | 0.091231 |
384 | 0.20052 | 0.291002 | 52.24643 | 10.97818 | 0.225749 |
512 | 0.291331 | 0.308755 | 61.62184 | 12.44501 | 0.116824 |
2)根据MPI通信函数的通信方式,对MPI通信函数进行分类,包括:阻塞的点到点通信函数、非阻塞的点到点通信函数、n到n的集合通信函数、n到1的集合通信函数,表4展示了部分MPI通信函数的分类结果;
表4
3)对不同类型的MPI通信函数选择不同的针对MPI通信的基函数:
a)对阻塞的点到点通信函数MPI_Send,选择的基函数为:
y=axb+c*log2(x)+d (公式5)
其中y为预测时间,x为并行度,a、b、c、d为待拟合参数。其中,待拟合参数是需要通过后续拟合获取的拟合值。
b)对非阻塞的点到点通信函数MPI_ISend,选择的基函数为:
y=ax-b+cxd+e (公式6)
其中y为预测时间,x为并行度,a、b、c、d、e为待拟合参数。
c)对n到n的集合通信函数MPI_Allreduce,选择的基函数为:
y=a*log2(x)+f*(bxc+d)+e (公式7)
其中集合通信函数使用了2叉树,y为预测时间,x为并行度,a、b、c、d、e、f为待拟合参数。
d)对n到1的集合通信函数MPI_Barrier,选择的基函数为:
y=(axb+c)·log2(x)+d (公式8)
其中集合通信函数使用了2叉树,y为预测时间,x为并行度,a、b、c、d为待拟合参数。
4)对自定义函数radsw_rad_rrtmg_sw_选择针对普通计算的基函数,针对普通计算函数的基函数为:
y=ax-b+cxd+e (公式9)
其中y为预测时间,x为并行度,a、b、c、d、e为待拟合参数。
5)使用最小二乘法进行拟合:
a)对于阻塞的点对点通信函数MPI_Send,得到拟合参数a=0.0002446054,b=1.12001204,c=0.0038805643,d=-0.0145246942,代入基函数公式5,得到该程序中阻塞的点对点通信函数MPI_Send的性能模型:
y=(0.0002446054)x1.12001204+(0.0038805643)log2(x)+(-0.0145246942)
拟合结果如图6所示。
b)对于非阻塞通信函数MPI_Isend,得到拟合参数a=-1.76198592,b=1,c=-6229.58544,d=6.96132801e-05,e=6232.35497,代入基函数公式6,得到该程序中非阻塞的点对点通信函数MPI_Isend的性能模型:
y=(-1.761985920x-1+(-6229.58544)x6.96132801e-05+6232.35497
拟合结果如图7所示。
c)对于n到n的集合通信函数MPI_Allreduce,得到拟合参数a=-471.694805,b=218.70633,c=0.00962916746,d=-218.649898,e=-4.89764125,f=317.009741,代入基函数公式7,得到该程序中n对n的集合通信函数MPI_Allreduce的性能模型:
y=(-471.694805)*log2(x)+317.009741*((218.70633)x0.00962916746+(-218.649898))+(-4.89764125)
拟合结果如图8所示。
d)对于n到1的集合通信函数MPI_Barrier,得到拟合参数a=0.09310688,b=0.40473344,c=-1.50021997,d=15.26406484,代入基函数公式8,得到该程序中n到1的集合通信函数MPI_Barrier的性能模型:
y=((0.09310688)x0.40473344+(-1.50021997))·log2(x)+15.26406484
拟合结果如图9所示。
e)对于自定义函数radsw_rad_rrtmg_sw_,得到拟合参数a=36.2256409,b=1,c=-1800.62067,d=7.1610775e-05,e=1801.36728,代入基函数公式9,得到该程序中自定义函数radsw_rad_rrtmg_sw_的性能模型:
y=(36.2256409)x-1+(-1800.62067)x7.1610775e-05+1801.36728
拟合结果如图10所示。
将所有自定义函数和MPI通信函数的性能模型求和聚合,获得程序的整体性能模型。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (9)
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所述的一种应用于并行科学计算程序的细粒度性能建模方法,其特征在于,所述阻塞的点到点通信函数的基函数为:
y=axb+c*log2(x)+d
其中y为预测时间,x为并行度,a、b、c、d为待拟合参数,所述待拟合参数是需要通过后续拟合获取的拟合值。
5.如权利要求2所述的一种应用于并行科学计算程序的细粒度性能建模方法,其特征在于,所述非阻塞的点到点通信函数的基函数为:
y=ax-b+cxd+e
其中y为预测时间,x为并行度,a、b、c、d、e为待拟合参数。
6.如权利要求2所述的一种应用于并行科学计算程序的细粒度性能建模方法,其特征在于,所述n到n的集合通信函数的基函数为:
y=a*logk(x)+f*(bxc+d)+e
其中集合通信函数使用了k叉树,y为预测时间,x为并行度,a、b、c、d、e、f为待拟合参数。
7.如权利要求2所述的一种应用于并行科学计算程序的细粒度性能建模方法,其特征在于,所述n到1的集合通信函数的基函数为:
y=(axb+c)·logk(x)+d
其中集合通信函数使用了k叉树,y为预测时间,x为并行度,a、b、c、d为待拟合参数。
8.如权利要求1所述的一种应用于并行科学计算程序的细粒度性能建模方法,其特征在于,所述步骤4中针对普通计算的第二基函数为:
y=ax-b+cxd+e
其中y为预测时间,x为并行度,a、b、c、d、e均为待拟合参数。
9.如权利要求1所述的一种应用于并行科学计算程序的细粒度性能建模方法,其特征在于,所述步骤6中聚合所有模型是指,在拟合后将程序中所有函数的性能模型相加,从而得到程序的整体模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110115720.2A CN112784422B (zh) | 2021-01-28 | 2021-01-28 | 一种应用于并行科学计算程序的细粒度性能建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110115720.2A CN112784422B (zh) | 2021-01-28 | 2021-01-28 | 一种应用于并行科学计算程序的细粒度性能建模方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112784422A CN112784422A (zh) | 2021-05-11 |
CN112784422B true CN112784422B (zh) | 2022-10-25 |
Family
ID=75759292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110115720.2A Active CN112784422B (zh) | 2021-01-28 | 2021-01-28 | 一种应用于并行科学计算程序的细粒度性能建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112784422B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105700998A (zh) * | 2016-01-13 | 2016-06-22 | 浪潮(北京)电子信息产业有限公司 | 一种对并行程序的性能进行监测分析的方法及装置 |
CN106469114A (zh) * | 2015-08-18 | 2017-03-01 | 上海无线通信研究中心 | 一种面向通信测试的并行计算性能检测系统及其方法 |
CN110928705A (zh) * | 2019-10-15 | 2020-03-27 | 湖南大学 | 面向高性能计算应用的通信特征模型方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL257381A (en) * | 2017-02-06 | 2018-03-29 | Neural Algorithms Ltd | System and method for automatically building data models |
-
2021
- 2021-01-28 CN CN202110115720.2A patent/CN112784422B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106469114A (zh) * | 2015-08-18 | 2017-03-01 | 上海无线通信研究中心 | 一种面向通信测试的并行计算性能检测系统及其方法 |
CN105700998A (zh) * | 2016-01-13 | 2016-06-22 | 浪潮(北京)电子信息产业有限公司 | 一种对并行程序的性能进行监测分析的方法及装置 |
CN110928705A (zh) * | 2019-10-15 | 2020-03-27 | 湖南大学 | 面向高性能计算应用的通信特征模型方法及系统 |
Non-Patent Citations (2)
Title |
---|
A Fine-Grained Performance Model of Cloud Computing Centers;H. Khazaei, J. Misic and V. B. Misic;《IEEE Transactions on Parallel and Distributed Systems》;20120924;第24卷(第11期);全文 * |
MPI程序的性能优化方法研究;刘鹏等;《舰船电子工程》;20130720(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112784422A (zh) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kleinrock | Distributed systems | |
KR101983206B1 (ko) | 데이터 레코드 선택 | |
Kerbyson et al. | A performance model of the parallel ocean program | |
Xiao et al. | Plasticity-on-chip design: Exploiting self-similarity for data communications | |
Feng et al. | Cosparse: A software and hardware reconfigurable spmv framework for graph analytics | |
Reddy et al. | Machine Learning Techniques for the Prediction of NoC Core Mapping Performance | |
Pimpley et al. | Optimal resource allocation for serverless queries | |
Friese | Efficient genetic algorithm encoding for large-scale multi-objective resource allocation | |
CN112784422B (zh) | 一种应用于并行科学计算程序的细粒度性能建模方法 | |
Abdul-Hussin | An S4PR class Petrí net supervisor for manufacturing system | |
Manumachu et al. | Parallel data partitioning algorithms for optimization of data-parallel applications on modern extreme-scale multicore platforms for performance and energy | |
CN103019852A (zh) | 一种适用于大规模集群的mpi并行程序负载问题三维可视化分析方法 | |
CN116662001A (zh) | 一种事件处理方法及装置 | |
CN110048886A (zh) | 一种大数据分析任务的高效云配置选择算法 | |
Pinar et al. | Improving load balance with flexibly assignable tasks | |
Cong et al. | Fast PGAS connected components algorithms | |
Reed | The performance of multimicrocomputer networks supporting dynamic workloads | |
Spingola et al. | Modeling Complex Natural Phenomena with the libAuToti Cellular Automata Library: An example of Application to Lava Flows Simulation. | |
Alouani et al. | A multi-objective approach for software/hardware partitioning in a multi-target tracking system | |
Peet et al. | A parallel-computing solution for optimization of polynomials | |
Shao et al. | A collaborative filtering based approach to performance prediction for parallel applications | |
Islam et al. | Focused layered performance modelling by aggregation | |
Tekinerdogan et al. | Architecture framework for modeling the deployment of parallel applications on parallel computing platforms | |
Sikora et al. | Evolutionary approaches to signal decomposition in an application service management system | |
Muzy et al. | Parallel and pseudorandom discrete event system specification vs. networks of spiking neurons: Formalization and preliminary implementation results |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |