HPL 测试介绍

HPL(The High-Performance Linpack Benchmark)是测试高性能计算集群系统浮点性能的基准,其通过对高性能计算机采用高斯消元法求解一元 N 次稠密线性代数方程组进行测试,评价高性能计算机的浮点性能。
浮点计算峰值是指计算机每秒可以完成的浮点计算次数,包括理论浮点峰值和实测浮点峰值。理论浮点峰值是该计算机理论上每秒可以完成的浮点计算次数,主要由 CPU 的主频决定。

理论浮点峰值 = CPU 主频 × CPU 核数 × CPU 每周期执行浮点运算的次数。

CPU 理论浮点运算速率计算公式:FLOPS = 核数 x 单核主频 x CPU 单个周期浮点计算值。

其中, CPU 单周期双精度浮点计算能力 = 2(FMA 数量) x 2(同时加法和乘法) x 512/64

准备工作

  1. 准备测试环境,需创建一个最高规格单计算节点的 EHPC 集群,如 CPU 26 核、内存 80G,详细操作可参看创建 EHPC 集群相关内容。

  2. 下载 HPL 软件测试脚本,以及测试算例

  3. HPL 软件上传至已创建完成的 EHPC 集群的共享目录中,详细操作可参考上传本地文件相关内容。

  4. 算例中,只需更改 NS,P,Q 这三个参数,其计算方式如下:

    NS 计算方法:N * N * 8 = 集群总内存 * 80%,此处计算出的 N 就是 NS 填入的值。

    P,Q 取值方法:P * Q = 核心数(P < = Q)其中,P 取值最好为 2 的幂。

    假设核心数为 24 核,那么 P,Q 可以选择的组合:

    • P = 2,Q = 12

    • P= 4,Q = 6 任选一组即可。(P,Q 在跑不同用例前,要做对应调整)

  5. 测试脚本测试算例上传至登录节点的目录下。

  6. 参考 WebSSH 章节相关内容,登录至集群的登录节点,编写如下脚本。

    [admin@login1 ~]$ vim myscript
    
    // 内容如下:
    #!/bin/bash
    
    source /es01/software/profile.d/inteloneapi.sh
    
    mpirun /es01/software/hpl-2.3/bin/Linux_Intel64/xhpl HPL.dat

测试方法

单节点集群

  1. 参考 WebSSH 章节相关内容,登录到集群登录节点。

  2. 在测试脚本和算例文件所在目录,修改 HPL.dat 文件中的 P、Q 值,需要分别验证 8 核,16 核,24 核的浮点性能。

    说明

    P、Q 修改及所对应的组合详见准备工作中的步骤 4。

  3. 算例文件修改完成并保存。

  4. 输入如下命令,其中,-n 的取值应该分别为 8,16,24(即当前用例要测试的核心数)。

    # sbatch -n 2 hpl.sh
    Submitted batch job 10
  5. 登录 QingCloud 管理控制台,选择产品与服务 > 高性能计算 > 弹性高性能计算 EHPC,点击左侧导航栏中的作业管理,进入作业页面,可以查看作业运行状态。

  6. 等待作业运行完成,查看相应的运行结果,详细操作可参考查看作业结果相关内容。

  7. 查看结果。需要关注的数据就是 Gflops,数值越高代表算力越强。如下所示三组 case 的预期是:核心数越多,Gflops 数值越高。

    hpl 1

多节点集群

  1. 单计算节点,测试其 CPU 26 核的算力,测试方法同单节点集群

    得出结果后,取平均单核算力,如总算力为 3.0015e+02,则单核算力为 3.0015e+02/26。

  2. 双节点,单节点测试完成后,给集群添加一个同规格的计算节点,测试 52 核心的算力,测试方法同上。

  3. 三节点,双节点测试完成后,给集群再添加一个同规格的计算节点,测试 78 核心的算力,测试方法同上。

  4. 预期结果:节点数越多,单核算力越低