1. 程式人生 > 實用技巧 >HPL 平行計算基準測試

HPL 平行計算基準測試

一、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)值