並行程式設計——HPCC效能測試branchmark

2020-09-23 12:00:15

HPCC branchmark測試使用

在使用過程中參考了在ubuntu下測試本機的HPCC分數這一篇博文。由於我的環境和這篇文章有所不同,該測試是在學校的超級計算機上完成的,相關設定有所差別。

1. 下載

HPC Chellenge下載對應的原始檔hpcc-1.x.x.tar.gz。將安裝包傳輸到超級計算機對應的個人資料夾下。
使用命令列在合適的位置解壓檔案

tar xzvf hpcc.1.x.x.tar.gz

2. 構建MAKE檔案

進入目錄 ./hpcc.1.5.0/hpl/setup,該目錄下儲存有多種構建好的MAKE檔案指令碼範例。根據其命名,可以看出對應適合的系統。
將其複製到上級目錄./hpcc1.5.0/hpl中,修改Make.xxx檔案。具體修改專案如下:

MPdir        = /home/andywang/mpich-install			    //本機安裝mpi的位置
MPinc        = -I$(MPdir)/include 						//mpi標頭檔案所在的位置
MPlib        = $(MPdir)/lib/libmpi.a 					//mpi靜態庫所在的位置

LAdir        = $(HOME)/clapack/lib 						//blas所在的位置
LAinc        = 											//HPCC沒有用到blas標頭檔案,可以空著
LAlib        = $(LAdir)/blas_LINUX.a $(LAdir)/lapack_LINUX.a $(LAdir)/libf2c.a
LINKER       = $(CC)

根據自己計算的具體情況,選擇對應的路徑和位置。可以使用which等命令來協助查詢本機的相關可執行檔案的路徑。

在我的使用環境中,可以設定為:

# MPI 部分:
MPdir		= /usr/local/mpi3-icc13
MPinc		= -I$(MPdir)/include
MPlib		= -L$(MPdir)/include

# LA 部分
LAdir		= /opt/intel/mkl
LAinc		= -I$(LAdir)/include
LAlib		= -L$(LAdir)/lib/intel64/ $(LAdir)/lib/intel64/libmkl_intel_lp64.a -Wl,--start-group $(LAdir)/lib/intel64/libmkl_sequential.a $(LAdir)/lib/intel64/libmkl_core.a -Wl,--end-group -L $(LAdir)/lib/intel64/ -lpthread -lm

# CC 部分
CC			= mpicc
CCNOOPT		= $(HPL_DEFS)
CCFLAGS		= $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops -Wall

# Linker 部分
LINKER		= mpicc
LINKFLAGS	= -L$(LAdir)/lib/intel64

3. 編譯

hpl上級目錄,即目錄./hpcc.1.5.0/下進行編譯。使用命令如下,其中xxx為所修改的檔案字尾。

make arch = xxx

如果希望預設為根據某個Make檔案編譯,可以在./hpcc.1.5.0/hpl/Make.top中將arch=UNKONWN修改為對應的檔案字尾。

在我的環境中,編譯過程中出現了報錯資訊stream.c檔案a,b,c未定義。經過查閱相關檔案,發現我的環境編譯器不支援C語言中的restrict,可以通過修改./hpcc.1.5.0/hpl/Stream/stream.c解決問題。

在編譯過程中,可能遇到其他錯誤,通過排查,一般能夠發現對應的路徑或者是檔案問題所在。按照錯誤資訊解決即可。常見有某些檔案沒有找到,一般是錯誤設定了路徑,檢視Make檔案中對應的路徑設定即可。

4. 執行

在正常的版本的mpi下,可以使用如下命令列執行。在某些超級計算機上面執行,根據執行的相關要求,將命令列中的mpiexec更換為對應提供的執行命令即可。

mpiexec  64 ./hpcc 

通過該命令執行,可能會報錯cannot open file hpccinf.txt。此時檢查目錄./hpcc.1.5.0/下是否存在檔案_hpccinf.txt,如果有,重新命名為hpccinf.txt即可。
還有可能報錯Need at least 4 processes for these tests,此時根據要求指定執行執行緒數大於4即可。或者是修改檔案./hpcc-1.5.0/hpccinf.txt,將Ps和Qs的積(Ps*Qs)減小即可。

5. 結果

執行結束後,沒有任何提示資訊。會在目錄./hpcc.1.5.0/下生成檔案hpccoutf.txt,該檔案為此次測試的詳細結果。