Linpack的安装与测试(Mpi+Goto+hpl)
暫無優(yōu)化,可以根據(jù)自己電腦情況進行優(yōu)化。
開頭參照此為博主的:https://blog.51cto.com/sclijq/1060178
中間的一個錯誤參照此位:https://blog.csdn.net/qq_43327857/article/details/85500973
在安裝HPL之前,系統(tǒng)中必須具備以下三個條件: 1)?? 編譯器 系統(tǒng)必須安裝了支持C語言和Fortran 77語言的編譯器。推薦采用在Linux操作系統(tǒng)中自帶的GNU編譯器。
sudo apt-get install gcc ///安裝GCC編譯器(支持C編譯)
sudo apt-get install build-essential(安裝g++)/g++
sudo apt-get install gfortran //mpich 即Fortran 2)?? 并行環(huán)境 并行環(huán)境是指MPI。在以太網(wǎng)環(huán)境下,一般采用MPICH,當然也可以是其它版本的MPI,如LAM-MPI。在Myrinet網(wǎng)下,采用MPICH-GM。若是其它網(wǎng)絡(luò)環(huán)境就采用相應(yīng)的MPI。 3)?? BLAS庫 BLAS庫及基本線性代數(shù)庫,采用BLAS庫的性能對最終測得的Linpack性能有密切的關(guān)系。常用的BLAS庫有GOTO、Atlas、ACML、ESSL、MKL等,我的測試經(jīng)驗是GOTO庫性能最優(yōu)。
MPI安裝
下載地址 Index of /static/downloads
MPICH | High-Performance Portable MPI
我準備將其安裝到根目錄下的mpisoft文件夾當中,以便日后方便管理
解壓 tar -zvxf mpich-3.2.tar.gz ~/mpisoft/
進入到解壓后的目錄中:
wangha@wangha:~/mpisoft/mpich-3.2
./configure --prefix=/home/wangha/mpi/mpich-3.2/mpich-install 2>&1 | tee c.txt /home/wangha/mpi/mpich-3.2/自己安裝目錄,也就是進入剛才解壓縮的文件的目錄
或./configure
如果運行通過,系統(tǒng)界面最后一行會出現(xiàn) “configuration complete!”的語句,接著下面的
make //時間有點長
make install
安裝結(jié)束
配置環(huán)境變量
添加下面這行到/etc/profile文件的最后然后重新起動系統(tǒng)使環(huán)境變量永久生效。sudo vi /etc/profile
?export MPI_ROOT=/opt/mpisoft/mpich4/mpich-install #這一步修改你自己的安裝地址/opt/mpi/mpich4/
export PATH=$MPI_ROOT/bin:$PATH
export MANPATH=$MPI_ROOT/man:$MANPATH
激活環(huán)境變量source /etc/profile
若是普通用戶則修改用戶目錄下的:~/.bash_profile文件
運行以下命令使修改生效:
?source /etc/profile ?(或者source .bashrc) ?
查看位置信息 which mpicc
查看版本號 mpichversion
mpi卸載
卸載源代碼編譯的的軟件:
cd 源代碼目錄
make clean
./configure
(make)
make uninstall
rm -rf 目錄
GotoBLAS2下載
.so .a 庫文件
gotoblas2 - Texas Advanced Computing Center
解壓:一定要在Linux下解壓
我準備將其安裝到根目錄下的mathdepository文件夾當中,以便日后方便管理
wangha@wangha:~/mathdepository$ tar -zvxf GotoBLAS2-1.13.tar.gz
進入解壓好的文件夾中:wangha@wangha:~/mathdepository$ cd GotoBLAS2/
編譯:make CC=gcc BINARY=64 TARGET=NEHALEM
make CC=gcc BINARY=64 TARGET=NEHALEM
TARGET是intel的NEHALEM架構(gòu)還是AMD的OPTERON
BINARY 是多少位的電腦
出現(xiàn)invalid operands (UND and ABS sections) for `*'錯誤
出現(xiàn)錯誤
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:101:../libgoto2_nehalemp-r1.13.so] 錯誤 1
make[1]: 離開目錄“/home/wangha/mathdepository/GotoBLAS2/exports”
make: *** [Makefile:49:shared] 錯誤 2
解決辦法:
打開文件
vi f_check
在文件末尾將第298行改為如下
print MAKEFILE "FEXTRALIB=$linker_L -lgfortran -lm -lquadmath -lm $linker_a\n";
重新編譯
make clean
make CC=gcc BINARY=64 TARGET=NEHALEM (根據(jù)自己計算機的編譯器和cpu設(shè)置)
成功!!!GotoBLAS build complete.
hpl下載
HPL - A Portable Implementation of the High-PerformanceLinpack Benchmark for Distributed-Memory Computers
下載完后同樣先解壓縮
wangha@wangha:~/hplxia$ ls
hpl-2.3 hpl-2.3.tar.gz
從hpl-2.3/setup目錄下拷貝Make.Linux_PII_FBLAS文件到hpl-2.3/目錄下,并將文件更名為Make.test
$cd hpl-2.3
$cp setup/Make.Linux_PII_FBLAS Make.test
修改Make.test的文件 紅的都換
wangha@wangha:~/hplxia/hpl-2.3$ vi Make.test
ARCH = test # Make.<arch>文件的后綴,即<arch> TOPdir = $(HOME)/hpl # HPL所在的路徑 INCdir = $(TOPdir)/include BINdir = $(TOPdir)/bin/$(ARCH) LIBdir = $(TOPdir)/lib/$(ARCH) HPLlib = $(LIBdir)/libhpl.a MPdir = /usr/local/mpich-1.2.6 # MPI所在的路徑 MPinc = -I$(MPdir)/include MPlib = $(MPdir)/lib/libmpich.a LAdir = <libgoto—path> # GOTO所在的路徑 LAinc = LAlib = $(LAdir)/libgoto_opt64p-r0.96.so $(LAdir)/xerbla.o # GOTO庫 F2CDEFS = -DAdd__ -DF77_INTEGER=int -DStringSunStyle CC = /use/bin/gcc # C編譯器 CCNOOPT = $(HPL_DEFS) CCFLAGS = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops -W -Wall LINKER = /use/bin/gfortran # Fortran77編譯器 LINKFLAGS = $(CCFLAGS)
以下是我的Make.test gcc跟gfortran如果是默認安裝的話,路徑應(yīng)該一樣。
SHELL = /bin/sh CD = cd CP = cp LN_S = ln -s MKDIR = mkdir RM = /bin/rm -f TOUCH = touch ARCH = test TOPdir = /home/wangha/hplxia/hpl-2.3 INCdir = $(TOPdir)/include BINdir = $(TOPdir)/bin/$(ARCH) LIBdir = $(TOPdir)/lib/$(ARCH) HPLlib = $(LIBdir)/libhpl.a MPdir = /home/wangha/mpisoft/mpich-3.2 MPinc = -I$(MPdir)/include MPlib = $(MPdir)/mpich-install/lib/libmpich.so LAdir = /home/wangha/mathdepository/GotoBLAS2 LAinc = LAlib = $(LAdir)/libgoto2.so $(LAdir)/libgoto2.a F2CDEFS = -DAdd__ -DF77_INTEGER=int -DStringSunStyle HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc) HPL_LIBS = $(HPLlib) $(LAlib) $(MPlib) HPL_OPTS = HPL_DEFS = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES) CC = /usr/bin/gcc CCNOOPT = $(HPL_DEFS) CCFLAGS = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops -W -Wall LINKER = /usr/bin/gfortran LINKFLAGS = $(CCFLAGS) ARCHIVER = ar ARFLAGS = r RANLIB = echo
修改完在當前目錄執(zhí)行 make arch=test 進行安裝
出現(xiàn)錯誤
/home/wangha/hplxia/hpl-2.3/include/hpl_pmisc.h:54:10: fatal error: mpi.h: 沒有那個文件或目錄
54 | #include "mpi.h"
| ^~~~~~~
compilation terminated.
make[2]: *** [Makefile:79:HPL_dlacpy.o] 錯誤 1
make[2]: 離開目錄“/home/wangha/hplxia/hpl-2.3/src/auxil/test”
make[1]: *** [Make.top:54:build_src] 錯誤 2
make[1]: 離開目錄“/home/wangha/hplxia/hpl-2.3”
make: *** [Makefile:72:build] 錯誤 2
直接在文件中導(dǎo)入mp.h的絕對路徑
make arch=test clean
make arch=test
出現(xiàn)錯誤:
./xhpl: error while loading shared libraries: libmpi.so.12: cannot open shared object file: No such file or directory
修改 將該目錄放進配置文件
(base) root@wangha:/# sudo vi /etc/ld.so.conf
(base) root@wangha:/# sudo ldconfig
有可能報錯
Need at least 4 processes for these tests,此時根據(jù)要求指定運行線程數(shù)大于4即可。或者是修改文件HPL.dat,將Ps和Qs的積(Ps*Qs)減小即可。即下面的錯誤
wangha@wangha:~/hplxia/hpl-2.3/bin/test$ mpirun -n 4 ./xhpl
HPL ERROR from process # 0, on line 419 of function HPL_pdinfo:
Need at least 4 processes for these tests
HPL ERROR from process # 0, on line 419 of function HPL_pdinfo:
Need at least 4 processes for these tests
mpirun detected that one or more processes exited with non-zero status, thus causing the job to be terminated. The first process to do so was: Process name: [[64874,1],2] Exit code: 1
修改HPL.dat文件
二維處理器網(wǎng)格(P×Q)的要遵循以下幾個要求:P×Q=進程數(shù)。這是HPL的硬性規(guī)定;P×Q=系統(tǒng)CPU數(shù)=進程數(shù)。一般來說一個進程對于一個CPU可以得到最佳性能。對于Intel Xeon來說,關(guān)閉超線程可以提高HPL性能;P≤Q,這是一個測試經(jīng)驗值,一般來說,P的值盡量取得小一點,因為列向通信量(通信次數(shù)和通信數(shù)據(jù)量)要遠大于橫向通信.等等這些,需要測試者多摸索。
根據(jù)電腦配置進行適當修改:以下是我的
wangha@wangha:~$ cat /proc/cpuinfo | grep name | cut -f2 -d: |uniq -c
8 Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
wangha@wangha:~$ free -h
總計 已用 空閑 共享 緩沖/緩存 可用
內(nèi)存: 7.6Gi 2.6Gi 1.7Gi 220Mi 3.4Gi 4.5Gi
交換: 9.5Gi 1.0Mi 9.5Gi
如有冒犯,請聯(lián)系我
總結(jié)
以上是生活随笔為你收集整理的Linpack的安装与测试(Mpi+Goto+hpl)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在使用DTX-1800测试网线(特别是短
- 下一篇: K12在线教育产品分析:北京四中网校