APP下载

高性能并行集群的性能测试与优化研究

2010-05-13赵玖玲,田先斌

现代电子技术 2009年12期
关键词:并行计算性能测试

赵玖玲,田先斌

摘 要:以IBM BladeCenter高性能集群系统性能测试为背景,研究大规模集群的性能测试与优化方法。通过对基于区域分解大规模线性方程组中并行求解算法在4个测试方案下的测试和分析,得到了其加速性能随计算节点数的变化曲线。结果表明,该高性能计算机集群具有很好的加速性能、稳定性,达到了预期的测试目标,为基于该并行平台的进一步并行开发研究奠定了基础。

关键词:性能测试;PCG;并行计算;MPI OpenMP;PGI

中图分类号:TP274文献标识码:A

文章编号:1004-373X(2009)12-091-04

Performance Test and Optimization Study of High Performance Parallel Cluster System

ZHAO Jiuling,TIAN Xianbin

(Teaching & Research Office 401,Second Artillery Engineering Institute,Xi′an,710025,China)

Abstract:This article studies the performance optimization of the large-scale cluster system by the performance test for IBM BladeCenter high performance cluster system.The efficiency of this system is exhibited through the test and analysis for this cluster system by running the test software in different parallel environment.Results prove that the high performance computer cluster has acceleration function and stability.These results offer a foundation for the exploiture and study.

Keywords:performance test;PCG;parallel computing;MPI;OpenMP;PGI

0 引 言

随着科研学术活动的不断深入,研究对象越来越复杂,尤其在数值仿真方面,由于研究模型越来越复杂,仿真时产生的计算量和数据量也越来越庞大。面对如此庞大的计算负荷,使用集群系统,利用并行技术是解决计算时间的一个理想方案[1]。

为了能够进行工程中的大规模数值计算,缩短科研周期,新近购置了IBM刀片式大规模并行计算集群系统,为了测试该系统的工程计算能力,实现了在科学计算中常用的大型线性方程组并行算法,测试并分析了并行集群下不同并行模型的计算时间及并行性能和优化措施。

1 系统硬件架构

计算机系统的性能取决于其软硬件的配置。在对系统进行有针对性的优化前,必须了解其软硬件组成。

1.1 硬件配置

目前大型并行计算机系统种类很多,许多高性能并行机如IBM“蓝色基因”计算机、曙光5000A等具有极高的计算速度。但是这些计算机硬件成本高,管理和维护花销大,一般机构难以承担。随着网络技术的发展,利用网络将多台计算机连接起来,组成集群系统进行并行计算的方式逐渐成为并行计算机发展的一个趋势。组建集群系统的方式通常有2种:一种是利用常见的局域网技术,将多台PC或服务器连接在一起组成的。这种组建方式可以最大限度利用局域网内的计算资源,降低组建集群系统的成本。另一种是利用专业的网络,将经过优化配置后的服务器连接在一起组成集群系统。这种方式成本高,但是比前一种方式具有更高的计算效率、更大网络通信带宽、更低的数据通信时延和更稳定的系统服务。刀片式服务器就是属于后者的一种高可用高密度(High Availability High Density,HAHD)的低成本集群服务器平台,是专门为特殊应用行业和高密度计算机环境设计的,它与其他商业集群服务器(如机柜式服务器)相比,具有成本低,占地小,升级简单等优势,是目前搭建集群的发展趋势。在2006年底发布的全球高性能计算机(HPC)TOP500排名中,就有70套是IBM BladeCenter刀片式服务器,而在我国HPC的TOP100的前10名中就有6台是刀片式服务器[2]。权威人士预测到2009年底,刀片服务器将占据服务器市场份额的1/4以上。

这里的高性能集群系统是IBM BladeCenter刀片服务器系列,其具体配置如表1所示。

表1 集群系统硬件配置表

结点类型CPU型号CPU个数内存硬盘节点个数

计算结点双核AMDOpteron2702.0 GHz/1M L2处理器2个4 GBPC3200DDR两个open2.5″SCSI73.4 GB硬盘24个

管理结点AMD Opteron2522.6 GHz/1 MB L2处理器2个4 GBPC3200DDR两个HSUltra320 SCSI73.4 GB硬盘1个

存储结点AMD Opteron2522.6 GHz/1 MB L2处理器2个4 GBPC3200DDR2.1TB的DS400磁盘阵列1个

该系统总共包含计算单元96个,系统总体浮点运算的理论峰值达到400 Gflops,系统总体内存达到104 GB,存储器总容量接近6 TB。

1.2 软件平台

该系统中的各个节点都采用Linux Red Hat 4(AS)Update 5作为操作系统,使用PBSPro作为进程调度管理软件,在管理节点和存储节点上还安装了管理软件XCat。

为了方便进行科学计算与配合其他科学计算软件的运行,系统中配置安装GOTO数学库。为了提高系统的并行编译器的性能,该集群系统安装Portland Group开发的高性能、并行Fortran,C和C++编译器PGI。此外还配置安装了目前并行计算领域常用的并行环境OpenMP(PGI支持)和MPI。

2 并行计算性能评判准则

要测试集群的性能,就需要评判标准。通用方法用于记录不同环境下机器运行程序的响应时间α,计算程序运行的加速比Sp和并行效率Ep,给出测试结果。

2.1 响应时间

时间是计算机性能测量的主要标准。响应时间也称周转时间,是计算机完成某一任务所花的全部时间,其公式如下:

α=tc+tI/O(1)

式中:tc是一个程序的CPU 时间。它包含用户CPU时间te(执行程序的时间)和系统CPU时间ts(操作系统的开销)。tI/O是系统的I/O时间,则包括输入/输出设备的I/O时间、存储器与主存间的页面交换时间、以及网络通信的时间。由于集群系统中任务在不同节点间并行执行时,相互之间需要不断地交换数据,网络通信往往称为决定程序效率的最大因素。可见,要降低响应时间,就必须最大限度地降低通信开销,提高CPU的利用率。

2.2 加速比Sp和并行效率Ep

加速比Sp是并行处理系统性能的主要评测指标。其计算公式如下:

Sp=αs/αp(2)

式中:αs是指给定程序在单处理机上的响应时间;αp是指相同的程序在多个处理机组成的并行处理系统上的响应时间。加速比Sp反映的是在并行条件下,计算速度所能得到的加速倍数。在理论情况下,程序若能完全并行,则p个相同处理器可以达到的加速比为p,但是在实际情况下,加速比Sp一般都要小于p[3,4]。

为了反映并行的效率,定义产生了并行效率Ep,其计算公式如下:

Ep=Sp/p(3)

一般情况下Ep值的范围是在(0,1)之间。Ep越接近1,算法的并行效率就越高。

3 并行测试程序

为了有效地测试并行系统的性能,需要选择具有代表性的测试程序。因为大部分科学计算,如有限元计算、有限差分计算等,都需要求解大型线性方程组,所以使用求解线性方程组测试性能具有极好的代表性。这里采用基于区域分解的并行预处理共轭梯度法求解线性方程组[5,6]。

常用的并行模式有MPI并行、OpenMP并行和MPI+OpenMP混合并行3种。MPI是一种基于消息传递的分布式存储模型,具有良好的通信性能;OpenMP是一种基于共享内存式的并行存储模型,可以充分利用单结点多计算核心的计算资源;MPI+OpenMP混合并行模式则可以实现分布式和内存共享两极并行[7]。

预处理共轭梯度法[8](Preconditioned Conjugate Gradient Method,PCG方法),是一种较成熟且并行效率较高的线性方程组迭代求解算法。因此这里使用PCG作为求解线性方程组的基本算法,求解方程Ax=f的并行算法描述如下:

Step 1: 初始化:

x(i,0)=0,r(i,0)=f(i)(4)

M(i)=⊕∑j∈Φm(j)(5)

Step 2:

z(i,0)=(M(i))-1r(i,0), s(i,0)=⊕∑j∈Φz(j,0)(6)

α(i,0)1 = r(i,0)•s(i,0),α(1)1=∑i∈Ωα(i,0)1(7)

β(1)2=α(1)1,p(i,1)=s(i,0)(8)

Step 3: 对于第k次迭代(k=1,2,3…):

u(1,k)=A(i)p(i,k)(9)

α(i,k)2=p(i,k)u(i,k),α(k)2 = ∑i∈Ωα(i,0)2,α=α(k)1/α(k)2(10)

x(i,k)=x(i,k-1)+αp(i,k),r(i,k)=r(i,k-1)-αu(i,k)(11)

z(i,k)=(M(i))-1r(i,k),s(i,k)=⊕∑j∈Φz(j,k)(12)

β(i,k)1=p(i,k)s(i,k),β(k)1 = ∑i∈Ωβ(i,k)1(13)

如果β(k)1<εβ(0)1,结束迭代,输出x,这里的ε为控制残差的常量。

否则:

β=β(k)1/β(k)2,p(i,k+1)=s(i,k)+βp(i,k)(14)

β(k+1)2=β(k)1α(k+1)1=β(k)1(15)

令k=k+1,重复Step 3。

式中:变量右上标(i,k)代表第i个进程的第k次迭代;符号⊕∑j∈Φ表示边界上的局部通信求和;∑i∈Ω表示的是全局通信求和。

为了保证线性方程组的系数矩阵是非奇异的,在程序中还包含了系数矩阵的组装过程。

4 并行系统测试与优化

4.1 测试方案

MPI并行模式需要在运行时输入一些配置项属性来指定相应的并行环境,从而实现正常的并行化。其中“-np”选项,它后面的数字指定了程序并行的规模,即系统总共包含多少个并行的进程;“-machinefile”选项后面的文件名指定了一个用于分配系统计算资源的配置文件,该文件包含了各进程将来运行时所在的计算结点。通过灵活的使用这两个配置属性,可以对同一个程序进行不同环境的测试[9,10]。

MPI+OpenMP混合并行模式下,若要在2n个计算单元上并行时,使用“-machinefile”配置n个节点,每个节点使用2个线程实施并行运算。

为了从不同的角度认识该高性能并行计算机平台的具体性能,测试程序被编译为4种版本,各个版本具体的编译条件如表2所示。

表2 各个版本程序编译选项

PGI优化使用MPI使用OpenMP

Serial否否否

Optimize Serial是否否

Pure OpenMP是否是

Pure MPI是是否

MPI+OpenMP是是是

4.2 性能测试

测试时使用不同阶数的系数矩阵进行求解,为了延长运行时间,方程Ax=f右侧的f分10次加载,并对比他们在不同条件下的性能。

4.2.1 PGI编译器性能优化测试

将Serial版本程序和Optimize Serial版本程序分别运行,测试结果如表3所示。

表3 PGI优化对照表

1 500阶矩阵1 800阶矩阵2 500阶矩阵3 500阶矩阵

Serial60.49 s84.06 s109.21 s171.59 s

Optimize Serial23.01 s31.25 s41.84 s66.25 s

运行速度比2.63 2.69 2.61 2.51

4.2.2 共享内存模型并行性能测试

在一个计算结点上,采用优化串行版和OpenMP并行版运行的响应时间做比较,得到直方图如图1所示。

图1 单结点OpenMP并行响应对比

4.2.3 并行模型性能比较

利用MPI和MPI+OpenMP混合并行模型,分别在4个、10个、20个计算单元上计算1 500阶、1 800阶、2 500阶、3 000阶、3 500阶矩阵,所得的加速比如图3所示。

4.3 并行性能分析

通过表3数据,可以明显的反映出PGI编译器的优化对程序的运行效率的影响。优化后的程序运行效率基本都提高了1.5倍以上,在监视系统进程的时候,可以明显地发现没有优化的程序最多占用CPU资源的50%,而优化后的程序则是100%地占用CPU的资源,可见PGI可以优化执行代码,提高了CPU的利用率。

通过图1可以看出OpenMP可以在共享存储计算机上充分挖掘多个双核CPU的计算潜力,提高运行速度。

通过图2可以看出并行程序能够极大地提高计算速度。在节点较少时,对于纯MPI并行模式来说,程序能够获得接近于结点个数的加速比,能够充分利用起多节点的计算资源,而加入OpenMP的混合编程模式,并行计算的加速性能较纯MPI较差。而当节点个数上升到20节点以上时,MPI并行程序的性能逐渐下降,而混合模式的程序性能逐渐提高。可见,在节点较少、MPI通信负担较低时,使用MPI比使用混合方式性能好,但是当节点较多,MPI通信负担较重时,再使用混合混合方式,利用OpenMP减少使用的节点个数,降低节点间通信负荷,并利用线程并行进一步提高性能。

图2 两种并行模式响应时间对比

5 结 语

这里开发基于并行预处理共轭梯度算法和基于不同并行模型的并行测试程序,并测试在高性能并行集群上的并行效率,研究高性能计算的优化方法,并行计算测试结果符合实际, 具有一定的参考价值。

通过测试对该高性能计算集群系统有了以下的认识:

(1)集群的加速比与计算所用的节点数基本保持相同的增减关系,即随着节点数的增加,加速比也相应的增加;

(2) 通信时延是影响加速比的主要因素之一,为了获得更好的加速比,应尽量减少节点间的数据通信从而减少通信时间来获得更好的加速比;

(3) 在使用的计算单元较多时,使用OpenMP配合MPI可以降低进程间地通信,从而提高加速比,但是提高的程度不明显;

(4) 对于大数据量处理领域,使用集群可大大缩短资料处理所需的时间,进一步提高工作效率,同时也能使拥有大计算量的处理技术和方法得到更好的应用。

参考文献

[1]冯云,周淑秋.MPI+OpenMP混合并行编程模型应用研究[J].计算机系统应用,2006(2):86-89.

[2]William H.Press,Saul A.Teukolsky,William T.Vetterling,Brian P.Flannery.Numerical Recipes in C++[M].北京:电子工业出版社,2005.

[3]祝永志,李丙锋,魏榕晖.Bewulf-T机群系统高扩展性研究[J].计算机科学,2008,35(2):298-300.

[4]Shameem Akhter,Jason Roberts.Multi-Core Programming[M].北京:电子工业出版社,2007.

[5]Graham Glass,King Ables.Linux for Programmers and users[M].北京:清华大学出版社,2006.

[6]陈国良.并行算法实践[M].北京:高等教育出版社,2004.

[7]温小飞,朱宗柏,胡春枝,等.高性能计算机集群的性能评价[J].武汉理工大学学报:信息与管理工程版,2005,27(4):19-22.

[8]Meijerink J A.Guidelines for the Usage of Incomplete Decomposition in Solving Sets of Linear Equations as theyOccur in Practical Problems.Comp.Phys.,1981.

[9]马晶燕,于双元.基于MPICH的MPI并行环境分析[J].科技资讯,2006(30):6-7.

[10]曹振南,冯圣中,王沁.IA机群结点内并行编程模式性能分析[J].计算机工程与应用,2004(20):84-86.

猜你喜欢

并行计算性能测试
Hadoop性能测试自动化研究
基于自适应线程束的GPU并行粒子群优化算法
云计算中MapReduce分布式并行处理框架的研究与搭建
矩阵向量相乘的并行算法分析
并行硬件简介
关于Java软件的性能测试分析
基于GPU的超声场仿真成像平台
基于Matlab的遥感图像IHS小波融合算法的并行化设计
车联网专用短程通信技术
黄麻、洋麻纤维性能研究