曙光5000A 超级计算机的Linpack 测试
10
《高性能计算发展与应用》 2009年第三期 总第二十八期
曙光5000A*超级计算机的Linpack测试
张文力 张攀勇 霍志刚
中国科学院计算技术研究所 北京 100190 zhangwl@ncic.ac.cn
摘要:
本文简要介绍了曙光5000A系统Linpack测试的情况,包括Linpack算法概述、性能预测模型、性能优化方法,以及测试结果分析。
1. 曙光5000A简介
曙光5000A在SuperComputing'08上发布的TOP500排行榜中让中国的身影再一次跻身前十行列[1]。该系统采用代号巴塞罗那的AMD Opteron 1.9GHz四核心处理器,总计拥有30720个计算核心、122.88TB内存,通过Infiniband 4X DDR技术互联,峰值性能233.472TFlops, 实测Linpack峰值180.6TFlops。这使我国成为世界上第二个拥有开发超百万亿次超级计算机实力的国家。在2008年中国高性能计算TOP100排行榜[2]中,曙光5000A还打破了国外高性能计算机已连续3年占据的排行榜首位。
存匹配的最大问题规模,这意味着测试进程要占用内存总容量的80%左右。分块大小NB对HPL测试虽然重要,其确定却长期依赖于经验性的尝试实验,致使Linpack测试缺乏可靠的性能估计模型。为了确定分块大小NB和预估总体性能,我们建立了性能预估仿真模型[5,6]。
图1中的伪码展示了Linpack的主体步骤。以NB列的一个Panel为研究对象,给出并行操作中的处
理器开销,设jj =j % NB为局部于Panel的列号。
2. Linpack测试简介
Linpack是当前国际上流行的性能测试基准。它通过对高性能计算机求解稠密线性代数方程组能力的测试,评价高性能计算机系统的浮点性能。根据问题规模与优化选择的不同,Linpack分为100×100,1000×1000,n×n三种测试[3]。HPL[4] (High Performance Linpack) 是第一个标准的公开版本并行Linpack测试软件包,是n×n测试的MPI实现,可适应多种体系结构。该软件包主要针对分布式存储大规模并行计算系统而设计,用户可以设定任意大小的问题规模,使用任意个数的CPU,使用基于高斯消去法的各种优化方法寻求最佳的测试结果。由于高斯消去LU分解法求解规模为n 的线性代数方程问题的浮点运算次数(2n3/3 +3n2/2)是一定的,因此只要给出问题规模n,根据线性方程组求解过程中消元和回代部分的耗时t就可以计算出机器的性能参数,即每秒执行的浮点运算次数:
( 2n3/3 + 3n2/2 ) / t (1)一般而言,要获得HPL实测峰值,需要使用与内
[1] nb1=i×NB, nb2=nb1+NB[2] for(j=nb1; j<nb2; j++)
[2.1] 找主元,P[j] s.t. |LiP[j],j|>=| Lij:N,j | [2.2] Lij, nb1:nb2 LiP[j], nb1:nb2 [2.3] lj lj/Lij, j [2.4] Lj Lj - ljuj
[3] 行向广播LLi, Li及行交换信息[4] for (j=nb1; j<nb2; j++)
注:本文所述曙光5000A超级计算机为国家863计划支持研究内容,和实际部署于上海超级计算中心的业务运行系统魔方(曙光5000A)在配置上不完全一致。