HPL测试

文章介绍了HPL,一种用于测试高性能计算集群浮点性能的基准程序,基于高斯消元法。文章详细阐述了浮点计算峰值(FLOPS)的概念和计算单位,并通过实例展示了如何计算理论和实际浮点峰值,包括考虑CPU的主频、核数和每个周期的浮点运算次数。在实际应用中,通过调整HPL的参数如N、NB、P和Q来优化性能,以达到最佳的FLOPS值。文章还分析了N值和NB值对性能的影响,以及内存和计算时间的平衡问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、HPL简介

HPL(The High-Performance Linpack Benchmark)是测试高性能计算集群系统浮点性能的基准程序。HPL通过对高性能计算集群采用高斯消元法求解一元N次稠密线性代数方程组的测试,评价高性能计算集群的浮点计算能力。

二、浮点计算峰值

浮点计算峰值(FLOPS,全称Floating-point operations per second)是指计算机每秒可以完成的浮点计算次数,包括理论浮点峰值和实测浮点峰值。

关于浮点计算单位:
一个MFLOPS(megaFLOPS)等於每秒一佰万(=10^6)次的浮点运算,
一个GFLOPS(gigaFLOPS)等於每秒拾亿(=10^9)次的浮点运算,
一个TFLOPS(teraFLOPS)等於每秒万亿(=10^12)次的浮点运算,
一个PFLOPS(petaFLOPS)等於每秒千万亿(=10^15)次的浮点运算,
一个EFLOPS(exaFLOPS)等於每秒百亿亿(=10^18)次的浮点运算
一个ZFLOPS(zettaFLOPS)等于每秒十万京(=10^21)次的浮点运算。
参考文章: CPU算力(cpu理论浮点运算值)_DinqYi的博客-CSDN博客

1、理论浮点峰值

理论浮点峰值=CPU主频×CPU核数×CPU每周期执行浮点运算的次数
理论浮点峰值是该计算机理论上每秒可以完成的浮点计算次数,主要由CPU的主频(GHz)决定。
具体可参考文章:php对cpu浮点运算能力的要求,关于CPU的浮点运算能力计算

①Linux下查看cpu信息:
linux的cpu信息可以从文件中cpuinfo读取
输入命令:cat /proc/cpuinfo
在这里插入图片描述

在这里插入图片描述
②主机的任务管理器上查询
在这里插入图片描述
③虚拟机设置上直接查询
在这里插入图片描述

  • cpu核数:由上述cpu参数表可知,该虚拟机和CPU核数为2【=1+1(processor从0开始数)】,而cup cores指的是这台机器的每个cpu有1个核心,故所有cpu数为2/1=2
  • cpu主频:值得注意的是我们计算的cpu主频并非上述的cpu Mhz(当前的时钟频率,将之与最大的时钟频率比较,可以用来观察cpu是否处在节能状态),而是处在model name 后的Ghz,也是最大的时钟频率(奇怪的是我没法显示,可能是版本过低 ̄へ ̄)。但可以从任务管理器上查到2.1GHz
  • CPU每周期执行浮点运算的次数:根据model name上网查(不确定查得对不对)–>结果为16(Intel一般为16,amd一般为8)

综上,理论FLOPS=2乘2.1乘16=67.2

2、实际浮点峰值

参考文章HPL测试HPL环境安装、配置及初步优化方案(报告)_hpl环境搭建_Yancygao的博客使用HPL软件测试服务器浮点数计算性能
实验目的:根据调解HPL.dat的参数,测出实际浮点峰值
更改参数
由于只有前面的N, NB, P 和 Q 对结果影响较大,特别是 N 值影响最大。所以在这里只讨论这4个参数,而其余的采用HPL官方文档的推荐设置(参考文章内有)。

  • 问题规模N的值(可理解为系数矩阵的大小):①用物理内存的容量(单位:byte)乘以80%~85%来进行HPL的运算②再处以8,将结果开平方,得到的值比较接近最佳N值。简而言之,就是根据NN8=内存容量*80%计算–>结果:28753
    在这里插入图片描述
  • NB值(可理解每个分块大小):NBx8一定是Cache line的倍数,该虚拟机Cache line的大小为64(一般也都为64)详情 参考:关于CPU Cache和Cache Line。–>这里取64、128、192、256进行讨论
    在这里插入图片描述
  • 二维处理器网格(P × Q):①P × Q = 系统CPU数 = 进程数 = 2 ②一般来说,P的值尽量取得小一点–>故选P为1,Q为2

运行程序:

  • 多进程运行命令:mpirun -np 线程数 ./可执行文件,-np参数值是服务器的CPU总核心数。对应着参数文件种 P * Q 的值。要求 -np 参数的值 >= P * Q,否则程序报错。如上,:2个进程运行xhpl,指令为 mpirun -np 2 ./xhpl

数据读取:

  • 设置不同的参数来让HPL程序运行多次,取其最高值(峰值)作为服务的FLOPS计算性能
  • 程序第一个运行种CPU刚唤醒,导致其有效计算所占的比例要小些,其结果会差些,特别是N值设置不够大时更明显

结果如下:

在这里插入图片描述
最佳N值和NB值:28000、192
最佳HPL效率为:46.9/67.2=69.79%

分析结果:

  • N过大:理论来说,N设置越大,有效计算所占的比例也越大,其结果FLOPS值越大。但由于以下两点,N值存在限制:
    ①内存消耗大,而计算机物理内存有限。这也是为什么上图中,当N值过大时,测试性能反而下降的原因
    ②计算时间过长,感觉很费时间
  • NB过大:由于每个线程计算量不相等,造成负载不平衡,会使得有些线程先执行完,有些后执行完,造成某些CPU核空闲,影响程序性能
    NB过小:通信开销就会很大
    所以,这里存在负载和通信开销的权衡问题
### HPL测试工具简介 HPL (High Performance Linpack) 是一种广泛使用的基准测试工具,主要用于评估超级计算机的浮点计算能力。它是 Top500 排行榜的主要评测标准之一[^2]。 --- ### HPL 测试工具下载方法 HPL 的源代码可以从其官方网站或其他可信资源获取。通常情况下,可以访问 Netlib 官方网站来下载最新版本的 HPL 源码: ```bash wget http://www.netlib.org/benchmark/hpl.tar.gz tar -xzvf hpl.tar.gz cd HPL/ ``` 此外,在集群环境中部署 HPL 时,可能还需要额外依赖 MPI 和 BLAS 库的支持。这些库可以通过以下方式安装: - **MPICH 或 OpenMPI**: 提供消息传递接口支持。 - **OpenBLAS 或 ATLAS**: 实现高效的矩阵运算功能。 --- ### HPL 测试工具配置方法 #### 环境准备 为了确保 HPL 能够高效运行,建议按照以下步骤完成环境配置: 1. **启用透明大页(Transparent Huge Pages, THP)** 这一操作能够显著提升内存管理效率,从而优化 HPL 性能表现。通过如下命令实现: ```bash echo always > /sys/kernel/mm/transparent_hugepage/enabled ``` 此外,也可以将其写入启动脚本以便永久生效[^3]。 2. **安装必要组件** - 安装 MPICH 或 OpenMPI: ```bash sudo apt-get install mpich libmpich-dev ``` - 安装 OpenBLAS 或其他替代方案: ```bash sudo apt-get install libopenblas-base libopenblas-dev ``` 3. **编译 HPL 工具** 编辑 `Make.Linux_YourCluster` 文件以适配当前硬件架构,并指定路径到已安装的 MPI 和 BLAS 库。完成后执行以下命令进行编译: ```bash make arch=Linux_YourCluster ``` --- ### 创建与运行 HPL 测试 成功构建后,需创建一个名为 `HPL.dat` 的输入文件,该文件定义了具体的测试参数。以下是典型的模板结构: ```plaintext 7 Number of tests to perform. 8 Size M of the matrix A. 8 Size N of the matrix A. 64 Block size NB. 2 Process grid P x Q. 2 Number of process rows P. 2 Number of process columns Q. 16.0 Time in seconds before exiting. 1 Panel factorization algorithm. 1 Recursive stopping criterion. 4 Number of lookahead depth values. 4 Lookahead depths L. 1 Number of swappings SWP. 99 Form of the matrices U and V. 1 Equilibration YES or NO. ``` 随后即可运行实际测试程序: ```bash mpiexec -n <number_of_processes> ./xhpl ``` 其中 `<number_of_processes>` 表示参与计算的任务数量,应等于网格大小 \(P \times Q\)。 --- ### 结果分析 测试结束后,控制台会显示一系列统计信息,包括但不限于最大求解规模、GFLOPS 值以及总耗时等指标。这些数据可用于衡量目标平台的整体性能水平。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值