HPL全称High Performance Linpack,是国际上用于超级计算机系统浮点性能测试的最通用的工具,也是各类超级计算赛事惯行的比赛项目。全球权威的超算TOP500以HPL测试成绩为基准来测定和排序,而HPCC也是全面检验HPC系统稳定性的工具。据我所知,每年的ASC都在不断的打破这个数据的记录。竞赛的HPL计算性能测试有严格的规定,要求各参赛队伍在总功耗3000W的限制下,采用组委会统一提供的超算节点、高速网络和自行配置加速卡等设备,完成超算系统构建。
HPL是针对现代并行计算机提出的测试方式,Linpack是国际上最流行的用于测试高性能计算机系统浮点性能的benchmark。通过对高性能计算机采用高斯消元法求解一元N次稠密线性代数方程组的测试,评价高性能计算机的浮点性能。
用户在不修改任意测试程序的基础上,可以调节问题规模大小(矩阵大小)、使用CPU数目、使用各种优化方法等等来执行该测试程序,以获取最佳的性能。HPL采用高斯消元法求解线性方程组。求解问题规模为N时,浮点运算次数为(2/3 * N^3-2*N^2)。因此,只要给出问题规模N,测得系统计算时间T,峰值=计算量(2/3 * N^3-2*N^2)/计算时间T,测试结果以浮点运算每秒(Flops)给出,衡量计算机性能的一个重要指标就是计算峰值或者浮点计算峰值。但Linpack标准的创始人早就发声明称计算机系统的Linkpack排名现在已经不能完全真实地反映应用程序的性能。
这次首个正式比赛日,中国台湾清华大学就创下3000w功耗约束下每秒42.99万亿次浮点运算性能的成绩,直接打破2017年的整体记录。中国台湾清华大学代表队设计了“4机16卡”的异构超算系统,共采用4台浪潮AI超算服务器NF5280M5配置NVIDIA Tesla 系列的12块V100与4块P100 GPU加速卡,通过完成控制优化,在3000W功耗约束下实现整体系统42.99万亿次/秒的持续浮点运算性能。
优化阶段主要注重关于算法相关的参数设置,CPU的架构数量和效率,内存容量,互联网络的通信性能,系统规模,算法相关的参数设置等各个方面的内容。
更多的认为HPL只代表了系统的理论计算性能。而且HPL也存在一定的局限性,GPU,MIC等协处理器对计算机的计算性能也起了很大的作用,现在大量的HPC都是在求解偏微分方程,需要更高的带宽和更低的延迟,内存访问也不规则,细粒度的迭代。就目前为止对普通人就看个热闹好了,反正也用不起。
衡量计算机性能的一个重要指标就是计算峰值或者浮点计算峰值,它是指计算机每秒钟能完成的浮点计算最大次数。包括理论浮点峰值和实测浮点峰值。
理论浮点峰值是该计算机理论上能达到的每秒钟能完成浮点计算最大次数,它主要是由CPU的主频决定的。 理论浮点峰值=CPU主频×CPU每个时钟周期执行浮点运算的次数×系统中CPU数 CPU每个时钟周期执行浮点运算的次数是由处理器中浮点运算单元的个数及每个浮点运算单元在每个时钟周期能处理几条浮点运算来决定的。
实测浮点峰值是指Linpack值,也就是说在这台机器上运行Linpack测试程序,通过各种调优方法得到的最优的测试结果。 在实际程序运行中,几乎不可能达到实测浮点峰值,更不用说理论浮点峰值了。
这两个值只是作为衡量机器性能的一个指标,用来表明机器处理能力的一个标尺和潜能的度量。
应用程序没有跟上计算机的发展,做应用程序的来自各行各业,计算机并不是强项,程序的优化有很大的余地。目前,如果应用程序能够达到峰值性能的30%,就已经是非常了不起的水平,所以需要用户和做计算机的一起沟通。超级计算机很大程度上不能应用到民用领域去,而在高精尖的科研领域超级计算机发挥着不可替代的作用,模拟核武器什么的,超新星的爆炸都是一般常人接触不到的领域,里普通人最近的也就预测个天气预报了,基于大量地理和天文数据通过仿真模拟接下来的天气变化。这种运算量大而且要求实时性的活也就只有超算能做了。