在介绍Linpack之前,我们先来熟悉几个术语。
对于超级计算机这种机群系统的主要性能指标有峰值速度、实测速度和运行效率等,计算速度一般以计算机系统“每秒执行的浮点运算次数”(Float ingpoint Operations Per Second,Flops)为单位,并定义了扩展单位MFlops(百万次浮点运算每秒)、GFlops(十亿次浮点运算每秒)、TFlops(万亿次浮点运算每秒)和PFlops(千万亿次浮点运算每秒)等单位,下面我们简单介绍一下这些术语。
峰值速度通过计算得出,也称为理论峰值速度。其计算公式为[理论峰值速度(亿次)=节点机每个处CPU主频(MHz)×CPU每个时钟周期执行浮点运算的次数×CPU总数目/108]。例如,“天河一号”的峰值速度为1206万亿次每秒(TFlops)或1.206千万亿次每秒(PFlops)。
用评测软件对机群系统计算速度的实际测试值,目前国际上通用的超级计算机或高性能计算机评测软件是Linpack。这是一套采用求解线性方程组和特征值问题的方法来综合评价超级计算机浮点运算性能的基准测试软件。实测速度能更客观地反映系统的实际计算性能,对用户而言,实测速度比峰值速度更有意义。
一般是指超级计算机实测速度与峰值速度的比率。运行效率越高,表明系统具有的处理资源等经过合理的系统设计得到了更有效的发挥。相对于由处理器数量和性能决定的理论峰值速度而言,运行效率显然是一个能够更全面、科学地反映超级计算机性能和技术先进性的指标。
Linpack是国际上流行的用于测试高性能计算机系统浮点性能的测试软件。通过对高性能计算机采用高斯消元法求解一元N次稠密线性代数方程组的测试,评价高性能计算机的浮点性能。测试包括三类:Linpack100、Linpack1000和HPL。HPL即High Performance Linpack,也叫高度并行计算基准测试。天河一号采用的Linpack测试方法为主流的HPL。
HPL测试全称为高性能计算Linpack基准测试。Linpack初的设计目的是为了帮助用户在解一个线性方程式时提供执行时间信息。第一个“Linpack基准”报告作为附录在1979年出现在Linpack用户指南上,其中包括了Linpack软件组件通常的用法途径的数据; 针对一个行列大小都为100的矩阵问题, 汇集了众多在当时得到广泛使用的计算机系统上(共计有23种)的结果。这样,用户就可以推断出解决他们的矩阵问题所需时间。
Linpack基准测试报告描述在求解计算密集型矩阵问题Ax=b时的性能,分为三个问题规模及相应的优化选项:100×100问题(内部循环优化),1000×1000问题(三级循环优化)以及一个可扩展并行问题。使用HPL基准测试一般需要和收集的信息包括:
(1)Rpeak。系统的大理论峰值性能, 用GFLOPS表示。
(2)Nmax。获得高GFLOPS值时的矩阵规模或问题规模。
(3)Rmax。在Nmax规定的问题规模下,达到的大GFLOPS。
(4)NB。对于数据分配和计算粒度, HPL使用的块尺度NB。
这些测试出来的数据可以作为判定超级计算机性能的指标。
和所有PC上的理论测试软件一样,Linpack仅仅是一个测试软件,很难也不可能代表超级计算机的全部表现,因此这些数据仅表示超级计算机可能达到的理论值,以及其目前的运算能力。不仅如此,目前超级计算机本身的优化和性能调配依旧是一门发展不够完善的学科,再加上软件对硬件的优化以及并行计算的效率提升方面还有很大空间可以发展,因此超级计算机在实际应用中应该有怎样的表现、性能发挥情况如何,还需要实际应用才能证明。