对服务器或电脑的计算性能进行时描述,一般使用FLOPS或MIPS为单位进行量化。MIPS表示每秒执行的百万级的机器语言指令数。CPU的主频越高,MIPS线性增加。由于不同时代的CPU主频可能一致,但执行指令的速度差异极大,因此MIPS无法衡量CPU实际的计算性能。FLOPS表示每秒的浮点数运算次数,能准备表述计算机的性能。
Linpack(Liner system package)是目前最流行的用于测试高性能计算机系统浮点性能的方法。它通过高斯消元法求解N元一次稠密线性代数方程组的测试,评价高性能计算机的浮点性能。
使用linpack-xtreme-1.1.5软件可以在Linux或Windows系统下测试CPU的FLOPS。在Linux系统中,解压缩linpack-xtreme-1.1.5软件后,使用其中的AuthenticAMD命令即可测试服务器的FLOPS。
直接运行AuthenticAMD,会使用全部的线程进行计算,其测试的结果会偏小。推荐使用1个线程运行单个AuthenticAMD命令,并行化运行与CPU核心数相同个数的AuthenticAMD命令,从而获得服务器整体的FLOPS性能。
于是编写程序test_FLOPS_by_linpack-xtreme.pl来并行化调用AuthenticAMD测试服务器的FLOPS性能。
使用linpack-xtreme-1.1.5软件对4颗E7-4890 V2 CPU (60核心120线程)的服务器进行测试,结果为:
CPU型号:Intel(R) Xeon(R) CPU E7-4890 v2 @ 2.80GHz 时间消耗:当使用60个CPU线程并行计算时,单个线程消耗的时间为 67.765 ~ 70.942, 68.279 (均值) / 68.245 68.279 (中位数)。 CPU性能:当使用60个CPU线程并行计算时,单个线程性能为 9.4002 ~ 9.8409, 9.767 (均值) / 9.7717 (中位数)。 CPU性能:当使用60个CPU线程并行计算时,所有线程总性能为 586.0235 GFlops。 时间消耗:当使用1个CPU线程并行计算时,单个线程消耗的时间为 29.587 ~ 29.587, 29.587 (均值) / 29.587 29.587 (中位数)。 CPU性能:当使用1个CPU线程并行计算时,单个线程性能为 22.5389 ~ 22.5389, 22.5389 (均值) / 22.5389 (中位数)。 CPU性能:当使用1个CPU线程并行计算时,所有线程总性能为 22.5389 GFlops。 时间消耗:当使用120个CPU线程并行计算时,单个线程消耗的时间为 189.257 ~ 278.805, 236.683 (均值) / 230.219 236.683 (中位数)。 CPU性能:当使用120个CPU线程并行计算时,单个线程性能为 2.3919 ~ 3.5236, 2.847 (均值) / 2.8967 (中位数)。 CPU性能:当使用120个CPU线程并行计算时,所有线程总性能为 341.6415 GFlops。
使用linpack-xtreme-1.1.5软件进行FLOPS计算的结果在一定程度上准确。在CPU最大核心数内进行测试时,使用的核心数越多,FLOPS结果越大,基本呈线性增加。此外,也在一定程度上不太准确。表现在:(1)服务器开启超线程,并行化数为CPU核心数的FLOPS值最大,而并行化为CPU线程数的FLOPS结果降低太多。(2)当使用单线程单任务进行测试时,FLOPS值非常高,是满负荷的两倍还多。我个人觉得单线程时CPU超频性能不会强这么多。(3)我使用8路服务器DL980G7(4颗E7-4870)进行测试时,其整体FLOPS值比4路服务器DL580G7(4颗E7-4870)的FLOPS值还低。这是很不正常的。所以,linpack-xtreme-1.1.5软件进行测试时,多物理CPU同时进行测试,会极大影响测试结果。linpack-xtreme-1.1.5软件可能仅适合单颗CPU的FLOPS计算。(4)在不同版本的CentOS系统下,或在相同系统相同型号而不同物理机器上测试结果差异较大。
最后,使用linpack-xtreme-1.1.5软件对一些服务器的FLOPS测试结果如下:
服务器型号 CPU型号数量 整体FLOPS 系统 惠普DL580G9 E7-8890 V3 * 4 1329.6549 GFlops CentOS7 华为RH5885H V3 E7-4890 V2 * 4 1076.3384 GFlops CentOS7 华为RH5885H V3 E7-4890 V2 * 4 814.6641 GFlops CentOS7 华为RH5885H V3 E7-4890 V2 * 4 586.0235 GFlops CentOS8 戴尔R910 E7-8870 * 4 346.8207 GFlops CentOS8 惠普DL980G7 E7-4870 * 8 252.3831 GFlops CentOS8 戴尔T620 E5-2620 * 2 198.8307 GFlops CentOS7