E-HPC客户端提供了可视化的页面来配置HPL、iPerf和FIO应用,可以快速提交相关作业,测试集群benchmark性能,包括浮点计算能力、带宽性能和读写能力。
背景信息
测试集群benchmark性能主要使用以下几个软件:
-
HPL:一个测试高性能计算集群系统浮点性能的基准程序。HPL通过对高性能计算集群采用高斯消元法求解一元N次稠密线性代数方程组的测试,评价高性能计算集群的浮点计算能力。
-
iPerf:一个网络性能测试工具,支持设置协议、时间等相关参数,可以报告带宽、数据包丢失等。
-
FIO:一个开源的I/O压力测试工具,主要用于测试磁盘的IO性能,支持多引擎和多场景测试。
准备工作
使用客户端运行HPL、iPerf和FIO测试集群性能,请确保已在集群中安装HPL、iPerf和FIO软件及其依赖。需安装的软件及其相关依赖如下:
-
HPL:需安装intel-mpi 2018、linpack 2018、 openmpi 3.0.0。
-
iPerf:需安装iPerf、intel-mpi 2018。
-
FIO:需安装fio 3.1、intel-mpi 2018。
其中,iPerf需要在每个节点上执行yum install -y iperf命令安装;其他软件可以通过控制台安装,具体操作,请参见安装软件。
操作步骤
-
打开并登录客户端。
-
在左侧导航栏,单击应用中心。
-
测试算力。
-
单击hpl应用。
-
在弹出面板配置相关参数,单击提交。
参数类型
参数
示例值
描述
基础参数
作业名称
hpltest
自定义设置。
作业队列
workq
运行该作业的队列。
CPU核数
2
单个节点的CPU核数。
节点数
1
运行该作业所需的计算节点数。
输出日志
hpl_test.log
作业运行日志的输出路径。
应用参数
求解规模
10000
求解的矩阵规模(N)。规模越大,有效计算所占的比例越大,则系统浮点处理性能越高。但矩阵规模越大会导致内存消耗量越多,如果系统实际内存空间不足,使用缓存、性能会大幅度降低。矩阵占用系统总内存的80%左右为最佳,即N×N×8=系统总内存×80%(其中总内存的单位为字节)。
分块大小
192 256
求解矩阵过程中矩阵分块的大小(NB)。NB值的选择主要是通过实际测试得出最优值。
-
-
测试带宽。
-
单击iperf应用。
-
在弹出面板配置相关参数,单击提交。
参数类型
参数
示例值
描述
基础参数
作业名称
iperftest
自定义设置。
作业队列
workq
运行该作业的队列。
CPU核数
2
单个节点的CPU核数。
节点数
1
运行该作业所需的计算节点数。
输出日志
iperf_test.log
作业运行日志的输出路径。
应用参数
HostName
login0
要测试的节点主机名称。
主机网卡
eth0
要测试的节点主机网卡。
-
-
测试读写能力。
-
单击fio应用。
-
在弹出面板配置相关参数,单击提交。
参数类型
参数
示例值
描述
基础参数
作业名称
fiotest
自定义设置。
作业队列
workq
运行该作业的队列。
CPU核数
2
单个节点的CPU核数。
节点数
1
运行该作业所需的计算节点数。
输出日志
fio_test.log
作业运行日志的输出路径。
应用参数
ioengine
psync
I/O引擎使用的测试方式。可选项:
-
psync
-
libaio
读写方式
rw
测试的读写方式。可选项:
-
read:顺序读
-
write:顺序写
-
rw:顺序读写
-
randread:随机读
-
randwrite:随机写
-
randrw:随机读写
IO块大小
4K
单次I/O测试的块文件大小,可配置为4K或16K。
线程数
1
测试线程数。
测试时间
100s
测试时间。
读写数据量
1024M
要测试的数据量。
测试文件
/home/username
存放系统生成的测试文件的路径。
-
-
查看结果
-
在客户端的左侧导航栏,单击作业查询。
-
找到HPL、iPerf和FIO作业,分别确认作业状态并获取结果。
当作业状态变为FINISHED时,单击作业对应的详情,在作业详情页面单击作业输出文件与路径后的查看,即可查看结果。结果示例如下:
-
HPL
- The matrix A is randomly generated for each test. - The following scaled residual check will be computed: ||Ax-b||_oo / ( eps * ( || x ||_oo * || A ||_oo + || b ||_oo ) * N ) - The relative machine precision (eps) is taken to be 1.11022 - Computational tests pass if scaled residuals are less than compute000 : Column=000192 Fraction=0.005 Kernel= 0.00 Mflops=15756 ============================================================================ T/V N NB P Q Time G ---------------------------------------------------------------------------- WC00C2R2 256 192 1 1 0.00 5.9646 HPL_pdgesv() start time Fri Sep 30 10:23:44 2022 HPL_pdgesv() end time Fri Sep 30 10:23:44 2022 ---------------------------------------------------------------------------- ||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)= 0.0110876 ...... P ============================================================================ Finished 1 tests with the following results: 1 tests completed and passed residual checks, 0 tests completed and failed residual checks, 0 tests skipped because of illegal input values. -
iPerf
Client connecting to 192.xxx.xxx.xxx TCP port 5001 TCP window size: 604 KByte (default) ------------------------------------------------------------ [ 12] local 192.168.xxx.1 port 47930 connected with 192.168.1.xxx port 5001 [ 4] local 192.168.xxx port 5001 connected with 192.168.1.xxx port 47930 [ ID] Interval Transfer Bandwidth [ 4] 0.0- 1.0 sec 1.16 GBytes 9.94 Gbits/sec [ ID] Interval Transfer Bandwidth [ 12] 0.0- 1.0 sec 1.16 GBytes 9.95 Gbits/sec [ 12] 1.0- 2.0 sec 795 MBytes 6.67 Gbits/sec [ 4] 1.0- 2.0 sec 797 MBytes 6.68 Gbits/sec [ 12] 2.0- 3.0 sec 1.10 GBytes 9.48 Gbits/sec [ 4] 2.0- 3.0 sec 1.10 GBytes 9.47 Gbits/sec [ 12] 3.0- 4.0 sec 1.18 GBytes 10.1 Gbits/sec [ 4] 3.0- 4.0 sec 1.17 GBytes 10.1 Gbits/sec [ 12] 4.0- 5.0 sec 1.00 GBytes 8.59 Gbits/sec [ 4] 4.0- 5.0 sec 1022 MBytes 8.57 Gbits/sec [ 12] 5.0- 6.0 sec 1.22 GBytes 10.5 Gbits/sec [ 4] 5.0- 6.0 sec 1.23 GBytes 10.5 Gbits/sec [ 4] 6.0- 7.0 sec 1.04 GBytes 8.93 Gbits/sec [ 12] 6.0- 7.0 sec 1.04 GBytes 8.91 Gbits/sec -
FIO
clat percentiles (usec): | 99.99th=[11338] bw ( KiB/s): min= 479, max= 1608, per=100.00%, avg=1238.62, stdev=163. iops : min= 119, max= 402, avg=309.64, stdev=40.98, samples=206 write: IOPS=309, BW=1240KiB/s (1270kB/s)(121MiB/100001msec) clat (usec): min=1695, max=84691, avg=2203.84, stdev=1582.55 lat (usec): min=1695, max=84691, avg=2203.97, stdev=1582.55 clat percentiles (usec): | 1.00th=[ 1827], 5.00th=[ 1893], 10.00th=[ 1909], 20.00th=[ 1958], | 30.00th=[ 1975], 40.00th=[ 2008], 50.00th=[ 2040], 60.00th=[ 2073], | 70.00th=[ 2114], 80.00th=[ 2147], 90.00th=[ 2278], 95.00th=[ 2573], | 99.00th=[ 5866], 99.50th=[ 7832], 99.90th=[23725], 99.95th=[33424], | 99.99th=[63177] bw ( KiB/s): min= 472, max= 1448, per=100.00%, avg=1239.76, stdev=136. iops : min= 118, max= 362, avg=309.93, stdev=34.15, samples=206 lat (usec) : 750=0.41%, 1000=36.82% lat (msec) : 2=30.29%, 4=31.00%, 10=1.29%, 20=0.14%, 50=0.05% lat (msec) : 100=0.01% cpu : usr=0.16%, sys=0.49%, ctx=61973, majf=0, minf=30 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, >=64=0 submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0 complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0 issued rwts: total=30969,30999,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): READ: bw=1239KiB/s (1268kB/s), 1239KiB/s-1239KiB/s (1268kB/s-1268kB/s), io=121MiB (127MB), run=100001-100001msec WRITE: bw=1240KiB/s (1270kB/s), 1240KiB/s-1240KiB/s (1270kB/s-1270kB/s), io=121MiB (127MB), run=100001-100001msec
-