HPL(High Performance Linpcak) Benchmarking Raspberry PIs
介绍
Benchmarking(基准测试) 是在某一系统上运行特定程序进而测定运算速度的过程.有许多特定基准测试程序并且我们在Linux系统上使用一个著名的程序HPL(High Performance Linpcak).
在这篇介绍中,我们将会介绍在单一节点(Raspberry Pi)下HPL测试环境搭建,
之后会介绍多个节点下(一个Raspberry Pi3 代表一个 node) 下测试环境搭建.需要注意的是,多个节点下的环境搭建,前提是每个Raspberry Pi 已经实现了MPI依赖(例如 MPICH 或者 OpenMPI,本文假定已安装MPICH).
最近在做ASC2018比赛,赛题2为HPL/HPCG测试,但学校组委会提供的计算节点(P100 GPU*2)无法登陆,所以打算用树莓派替代.
HPL是什么
HPL是一个软件包,解决了一个(随机)双精度稠密线性系统(64位)的分布式内存计算机算法。HPL包提供了一个测试和定时程序量化得到的解的精度以及计算时间了。这个软件在系统中实现的最佳性能取决于多种因素。这种实现是可伸缩的,在这个意义上,相对于处理器内存使用率,它们的并行效率保持恒定。因此,我们可以用它来并行地测试单个处理器或一系列分布式处理器。所以让我们开始安装HPL。
步骤
Step1 安装依赖
- gfortran fortran语言编译器
- MPICH2 MPI的一种实现
- mpich2-dev 开发工具
- BLAS Basic Linear Algebra Subprograms
1 | sudo apt-get update |
Step2 下载并设置HPL
1 | mkdir /home/username/hpl-test |
Step3 调整Make.rpi 文件
这是非常重要的一步,下面文件中的改变根据你自己系统的情况而定.请注意以下变化参数显示,遍布make.rpi文件.因此,我建议您找到每个参数并替换或添加更改,然后继续到下一个参数.
请详细阅读hpl-2.2中的INSTALL文件
1 | nano Make.rpi |
Step4 根据Make.rpi编译安装HPL
1 | cd /home/username/hpl-test/hpl-2.2 |
编译第一次没有通过,原因及解决方案
Step5 创建HPL输入文件
以下是HPL.DAT文件的一个例子.这是HPL运行时的输入文件.该文件中提供的值用于生成和计算问题.您可以直接使用此文件为单个节点运行测试.创建一个文件,在bin/rpi文件夹并命名为HPL.DAT将下面的内容复制到那个文件中.
1 | HPLinpack benchmark input file |
该文件的内容必须通过反复试验的方法来改变,直到得到一个令人满意的输出。要了解每一个参数以及如何改变它,请参考这里的一篇论文。要跳过要点,从文档中的第6页开始阅读.
Step6
当hpl.dat文件准备好了,我们可以运行HPL.以上hpl.dat文件是一个单节点或处理器,所以在上述文件的P×Q值的产品1 * 1 = 1,它是一个单一的处理器.
1 | cd bin/rpi |
输出结果类似于
1 | ================================================================================ |
终端上的最终输出将类似如下所示,最后一个值给出速度和值,然后显示所提供的不同参数.在下面的内容中,速度是Gflops,它的值是在1.21e-01 GFLOPS,转换是121MFLOPS.
1 | ================================================================================ |
上面的数据可能会有差异,单个树莓派的运算性能并不是很好
Step7 在多节点上运行HPL
当我们想运行HPL为多个节点,改变hpl.dat文件.假设我们有32个节点,所以p q的乘积应该是32.我选择了p=4,q=8.除了这个变化,我们必须改变N的值,从试验和错误,我们得到的最大速度为N = 17400.最后的文件内容如下所示
1 | HPLinpack benchmark input file |
记住,在下面的命令中更改路径以表示系统中的machine file路径
1 | cd bin/rpi |