一、HPL介绍
高性能计算--HPC(High performance computing), 通常指使用很多处理器或集群中的几台计算机的系统。高性能集群上运行的程序一般使用并行算法,把一个大的问题根据一定的规则切分为许多小的子问题,在集群中的不同节点上进行计算,而这些小问题的处理结果,经过处理可合并为原问题的最终结果。由于这些小问题的计算是并行完成的,所以可以缩短问题的处理时间。
HPL(High Performance Linpack)是并行计算集群的测试工具,通过调整测试文件中的矩阵大小、CPU数量等测试参数,执行HPL测试程序来获取机器的最佳性能,衡量结果是浮点运算/秒(Flops),可以并行对单个处理器或分布式处理器进行基准测试。
编译HPL需要两个库,一个是MPI 库,另一个是BLAS(Basic Linear Algebra Subprograms)或VSIPL(Vector Signal Image Processing Library),可以从HPL 主页相关链接下载后编译。
二、HPL安装
1、安装编译器(GCC和GFortran)
# yum install -y gcc gcc-c++ gcc-gfortran glibc glibc-devel make
2、安装MPI
# yum install -y mpich-3.2-devel mpich-3.2
3、安装OpenBLAS (向量和矩阵运算库函数)
# wget https://github.com/xianyi/OpenBLAS/archive/v0.3.9.tar.gz -O OpenBLAS-0.3.9.tgz # tar zxvf OpenBLAS-0.3.9.tar.gz # cd OpenBLAS-0.3.9 # make CC=gcc FC=gfortran # make PREFIX=/usr/local/openblas install
4、下载并解压HPL
# wget https://www.netlib.org/benchmark/hpl/hpl-2.3.tar.gz # tar -xzvf hpl-2.3.tar.gz # cd hpl-2.3 # cp setup/Make.Linux_PII_CBLAS ./
5、编辑Make.Linux_PII_CBLAS文件
# vim Make.Linux_PII_CBLAS SHELL = /bin/sh CD = cd CP = cp LN_S = ln -s MKDIR = mkdir RM = /bin/rm -f TOUCH = touch ARCH = Linux_PII_CBLAS TOPdir = /usr/local/hpl-2.3 INCdir = $(TOPdir)/include BINdir = $(TOPdir)/bin/$(ARCH) LIBdir = $(TOPdir)/lib/$(ARCH) HPLlib = $(LIBdir)/libhpl.a MPdir = /usr/lib64/mpich-3.2 MPinc = -I$(MPdir)/include MPlib = $(MPdir)/lib/libmpi.so LAdir = /usr/local/openblas LAinc = LAlib = $(LAdir)/lib/libopenblas.a F2CDEFS = HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc) -lpthread HPL_LIBS = $(HPLlib) $(LAlib) $(MPlib) -lpthread HPL_OPTS = -DHPL_CALL_CBLAS HPL_DEFS = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES) CC = /usr/lib64/mpich-3.2/bin/mpicc CCNOOPT = $(HPL_DEFS) CCFLAGS = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops LINKER = /usr/lib64/mpich-3.2/bin/mpif77 LINKFLAGS = $(CCFLAGS) ARCHIVER = ar ARFLAGS = r RANLIB = echo
6、编译HPL
# make arch=Linux_PII_CBLAS
7、测试HPL
# cd ./hpl-2.3/bin/Linux_PII_CBLAS # /usr/lib64/mpich-3.2/bin/mpirun -np 4 ./xhpl > HPL-Benchmark.txt
HPL.dat文件参考如下
https://www.advancedclustering.com/act_kb/tune-hpl-dat-file
mpirun的np值要等于HPL.dat的(P x Q)值
多节点并行测试
# mpirun -np 8 --host node1,node2 ./xhpl > HPL-Benchmark.txt