苑 野,于永澔(哈尔滨工业大学 基础与交叉科学研究院,哈尔滨 150080)
基于NPB的并行机群系统可扩展性研究
苑野,于永澔(哈尔滨工业大学 基础与交叉科学研究院,哈尔滨 150080)
摘要:使用NPB并行基准测试程序能有效的测试出大型计算流体力学(CFD)应用中的计算和数据移动特征,这对大量科学与工程应用具有重要意义.在并行机群计算环境下,使用NPB基准测试程序(IS、EP、CG、MG、FT、BT、SP和LU)对该系统的性能进行了评测,实验表明,在一定规模下,NPB的8个基准测试程序随着处理器数目的提高,其系统性能和可扩展性的表现各不一致.EP程序的可扩展性较好,性能较稳定;而IS、CG、MG、BT和SP的可扩展性较差,性能较差;LU和FT在不同规模下,其可扩展性表现为不规律性.机群系统的可扩展性与应用程序的匹配程度还需要进一步提高.
关键词:NPB;性能评测;并行基准测试程序
科学与工程计算是指应用计算机处理科学研究和工程技术中所遇到的数学计算,其主要特点是建模复杂、计算量巨大和计算复杂性高等.许多计算问题,如全球天气预报、大型DNA结构建模、CT与核磁共振成像和CFD计算流体力学等,都对计算机系统的计算能力提出了极高的要求.因此,改进计算机系统结构提升其性能就显得非常重要.并行处理是提高计算机系统计算能力的最有效途径之一.并行机群系统以其廉价性、可扩展性好和易用性等特点已经成为科学与工程计算领域最重要的计算平台[1].但是并行计算机比单处理机复杂,为了更好的发挥并行计算机的性能优势,解决不同领域应用问题,评价和测试并行计算机的多种性能是非常必要的.首先通过对并行计算机的性能测试,可以充分发挥并行计算机的特点,提高并行计算机的使用效率.其次根据并行计算机的性能测试结果,发现系统设计的错误,针对具体问题改进现有的设计,进一步提高机器的性能,以适应各种不同领域的应用需求.最后根据对计算机性能的实际测量和统计分析,可以明确计算机所应完成的软硬件职能,合理其功能划分,优化系统结构与算法的组合.
在科学与工程计算领域,对计算机系统进行评测通常使用基准测试程序[2-4],根据用途的不同,国际上流行的通用基准测试程序主要包括核心测试程序(如Linpack、Scalapack)、综合测试程序(如Whestone、Dhrystone)、应用测试程序(如SPEC)、并行测试程序(如NPB、PARKBENCH)和事务类测试程序(如TPC).Linpack与NPB基准测试程序通常用于并行计算机机群的系统性能评测,但是它们的评测目的不同,Linpack测试侧重于测试并行计算机系统能达到的最大浮点计算性能,而NPB测试更侧重于测试一般应用程序(CFD应用)的实际性能.本文使用NPB基准测试程序对并行机群系统进行了性能评测研究.介绍了NPB测试程序的基本内容和特点,并进行了详细的系统性能分析.
1NPB测试程序
NPB[5]是美国航空航天局(NASA)设计开发的一套用于分析并行计算机性能的测试程序,主要目的是评测并行计算机的处理器、内存和通信系统等基本部件的性能.该基准测试程序由8个程序组成,用于解决计算流体力学(CFD)应用中动态物理系统模型偏微分方程求解问题.它包括5个来自航空动力学应用的核心程序和3个模拟CFD应用程序.程序中所使用的算法在很多领域中使用,具有一定的通用性和代表性,测试结果通常用MFLOPS每秒百万次浮点运算表示.其主要测试特点包括:
NPB包含的5个核心程序:
IS程序:基于桶的整数排序.它是用于物理学中粒子分类的基本方法.首先由连续生成算法产生N个关键字,并均匀分配在内存中,然后对N个关键字进行并行排序.关键字的分布顺序决定基准测试程序的测试性能.主要测试整数的计算速度和通信性能.
EP程序:密集并行计算内核.典型的蒙特卡罗模拟应用问题,根据内部算法产生成对的Gauss随机偏离数(伪随机数)并统计在连续正方形内环的数量.它可以评估特定并行系统的上限浮点计算性能,几乎没有处理器间通信,惟一的大量通信是在最后对不同处理器中的数据进行累加求和操作.主要测试数学函数的浮点运算性能.
CG程序:利用共轭梯度法计算近似大型稀疏正定矩阵的最小特征值.典型的非结构化网格计算,使用反幂法随机查找一个非零对称正定稀疏矩阵最大特征值的估计值.主要测试不规则通信和长距离通信[6].
MG程序:简单的三维多重网格内核.用4个V型循环多重网格迭代算法求解离散泊松方程的周期性近似解.主要测试多重网格在其顺序网格上的长短距离通信和内存密集型通信.
FT程序:利用快速傅立叶变换求解三维偏微分方程.物理学中典型的谱分析法,使用正向和反向FFT数值求解偏微分方程,主要测试长距离通信.
NPB的3个模拟CFD应用程序:
BT程序:用于求解3对角块方程组.基于ADI算法,解决了NS(Navier-Stokes)方程在近似、隐含和有限差分三个方面产生的块三角方程组求解问题.三维多分区分解法要求运行程序的处理器个数必须是平方数.主要测试通信和计算的平衡.
SP程序:用于求解5对角线方程组.与BT程序类似,要求运行程序的处理器个数必须是平方数.主要测试通信和计算的平衡.
LU程序:用于基于对称超松弛法(SSOR)求解块稀疏方程组.通过对原差分格式的块下三角与块上三角近似方程的分解,变换为三维可压缩NS方程的有限差分离散,最后通过SSOR求解.NPB要求LU代码中处理器的个数必须是2的幂次.主要测试非连续存储访问的点到点通信.
2性能测试与分析
2.1测试环境
本文的硬件测试环境是64个节点组成的并行机群系统,采用Infiniband高速互联网络,每个节点配有1颗Intel Xeon 2.5G处理器,16G内存,1T SAS磁盘,GPFS共享文件系统,软件环境是64位Red hat Linux 6.2操作系统、MPI版本为MPICH2、NPB版本为NPB3.3、编译器为g77、优化选项为-O3、随机数发生器为randi8.
2.2可扩展性
可扩展性是评价并行计算机系统性能的重要指标[7-9].可扩展性就是确定计算机结构与应用算法之间的匹配程度,一种比较好的系统结构应该能有效地实现某一类应用算法.同时,研究不用类型特征应用程序的可扩展性可以用于指导改进并行算法和并行体系结构,以使并行算法尽可能地充分利用可扩充的大量处理器.在理想情况下,并行计算机的性能应该在实现算法时能随处理机数目的增加而线性地扩展.
Nussbaum和Agarwal根据PRAM模型提出了下面的可扩展性定义.对于一个给定的算法,机器的可扩展性Φ(s,n)可表示为实际机器的渐进加速比S(s,n)与EPEW PRAM理想实现的渐进加速比S1(s,n)之比.S1(s,n)=T(s,1)/T1(s,n),其中T1(s,n)是PRAM上忽略所有通信开销的并行执行时间,因此可扩展性的定义如下:
直观看来,可扩展性越好,则给定系统结构运行给定算法所得到的性能越好.Mflop/s/processor是衡量系统可扩展性的重要指标.一般来说,随着处理器数量的增加,该值变大则系统的可扩展性变好、系统的性能变好;反之,则可扩展性变差、性能变差.
我们在并行机群系统环境下对NPB中的IS、EP、CG、MG、FT、BT、SP、LU8个程序进行可扩展性测试.结果如图1所示.
图1 NPB可扩展性测试结果
如图1所示,IS程序的Mflop/s/processor测试值随着处理器数量的增加而逐渐变小,整体性能下降,可扩展性很差.EP程序的Mflop/s/processor测试值随着处理器数量的增加几乎没有变化,性能波动不大,可扩展性较好.CG、MG和FT程序的Mflop/s/processor测试值随着处理器数量的增加而逐渐减小,整体性能不断下降,可扩展性非常差,主要原因是该程序主要测试长距离通信,程序执行时随着处理器数目的增加,通信量开销也随着变大.BT和SP程序主要测试通信和计算的平衡,但是BT和SP程序的Mflop/s/processor测试值却表现得各不相同,BT程序的Mflop/s/processor测试值随着处理器数量的增加表现为先减小后增加,扩展性比较好,而SP程序则表现为持续下降,性能持续下降,可扩展性差.LU程序的Mflop/s/processor测试值随着处理器数量的增加而表现为先变大,然后逐渐变小.在处理器个数为16时,可扩展性最好,性能最好,然而处理器个数大于16时,可扩展性变差,性能下降,主要原因是LU程序用于测试连续存储访问的点到点通信,当处理器个数达到一定数量时,节点间相互通信变大,性能持续下降.
图2 FT在Class B和C上的可扩展性比较
图3 LU在Class C和D上的可扩展性比较
如图2、3可知,FT和LU程序在不同的测试规模下,可扩展性表现的明显不同.FT程序在Class C 规模下其Mflop/s/processor测试结果随着处理器数量的增加表现为先减小后变大,可扩展性则由差变好,这说明该程序对测试数据集的规模敏感.LU程序在Class D规模下其Mflop/s/processor测试结果基本保持线性缓慢增加,可扩展性很好,性能持续缓慢增加.
3结语
通过上述NPB评测结果分析可知,CG、MG、FT程序在一定规模下,系统性能随处理器数量的增加逐渐下降,可扩展性很差.而EP程序则随处理器数量的增加获得了很好的可扩展性.BT、SP、LU程序则呈现不规律变化,且对测试数据集规模敏感.
参考文献:
[1]CHAI L, LAI P, JIN H,etal. Designing an efficient kernel-level and user-level hybrid approach for mpi intra-node communication on muti-core systems [J]. IEEE Computer Society, 2008, 50(5): 1389-1396.
[2]HU L, CORTON L. Performance evalution for parallel systems [D]. NSW: University of NSW, 1997. 990-995.
[3]黄铠, 徐志伟. 可扩展并行计算技术、结构与编程[M]. 北京: 机械工业出版社, 2000.
[4]YOO A B, B R DE SUPINSKI, MUELLER F,etal. Memory benchmarks for SMP-based high performance parallel computers[C]//San Francisco: Lawrence Livermore National Laboratory, 2001. 476-480.
[5]FARAJ A, YUAN X. Communication characteristics in the NAS parallel benchmarks[C]// Cambridge: The 14th 1ASTED Int’1 Conf. Parallel and Distributed Computing and Systems, 2002. 643-654.
[6]BAILEY D, BARSCZ E, BARTON J,etal. The NAS parallel benchmarks[R]. NASA Ames Research Center , Tech Rep:RNR-94-007,1994.
[7]袁伟, 张云泉. 国产万亿次机群系统NPB性能测试分析[J]. 计算机研究与发展, 2005, 42(6): 1079-1084.
[8]FREDERICK C, WONG R P, MARTIN R H,etal. Architectural Requirements and Scalability of the NAS Parallel Benchmarks [J]. ACM Transactions on Computer System, 1999, 19(5): 974-988.
[9]王鼎兴, 郑纬民. 高等计算机系统结构: 并行性、可扩展性、可编程性[M]. 北京: 清华大学出版社, 1995.
Parallel cluster system scalability research based on NPB
YUAN Ye, YU Yong-hao
(Academy of Fundamental and Interdisciplinary Sciences, Harbin Institute of Technology, Harbin 150080, China)
Abstract:NPB parallel benchmark can effectively test a large computational fluid dynamics (CFD) application in mobile computing and data features, which is important for a large number of science and engineering application.This paper used NPB benchmark (IS,EP,MG,CG,FT,LU,BT and SP) to test and evaluate the performance of the system in the parallel cluster computing environment. With the increasing number of processors under a certain size, experiments showed that NPB's eight benchmarks had the various inconsistencies of the system performance and scalability. EP program has better scalability, more stable performance. But IS, CG, MG, BT and SP programs had poor scalability and performance. In different size, the scalability and performance of LU and FT were irregular. The scalability of cluster system and the matching degree between the application program also need to be further improved.
Key words:NPB; performance evaluation; parallel benchmark
中图分类号:TP311
文献标识码:A
文章编号:1672-0946(2016)01-0060-04
作者简介:苑野(1977-),男,硕士,工程师,研究方向:高性能计算机体系结构与评测.
基金项目:国家自然科学基金(51201051)
收稿日期:2015-04-10.