(LINPACK)HPL测试成功步骤整理
gcc/g++/gfortran 得有
//ubuntu? sudo apt install gcc(以此類推)
并行環(huán)境mpich,
基本線性代數(shù)子方程gotoblas
1、 mpich安裝
wget http:/www.mpich.org/static/downloads/3.3.2/mpich-3.3.2.tar.gz
tar zxvf mpich-3.3.2.tar.gz
cd mpich-3.3.2
./configure --prefix=/usr/local/mpich-3.3.2(prefix后為安裝路徑)
sudo make
sudo make install
vim ~/.bashrc
export PATH=”usr/local/mpich-3.3.2/bin:$PATH”
source ~/.bashrc
which mpicc (路徑記一下)
which mpiexec
如果出現(xiàn)正確路徑,則說明安裝成功。
2、GotoBLAS2安裝
下載位置GotoBLAS:百度網(wǎng)盤 請輸入提取碼
2.1 解壓GotoBLAS包之后,在解壓后的目錄下執(zhí)行./ quickbuild.64bit進行快速安裝,如果安裝正常,在本目錄下就會生成libgoto2.a和libgoto2.so兩個文件
????????執(zhí)行./ quickbuild.64bit
????????make BINARY=64 TARGET=NEHALEM/ 或者OPTERON(取決于電腦情況)
若出現(xiàn)如下:
?../kernel/x86_64/gemm_ncopy_4.S:192: Error: undefined symbol
RPREFETCHSIZE' in operation
?../kernel/x86_64/gemm_ncopy_4.S:193: Error: undefined symbol
RPREFETCHSIZE' in operation
../kernel/x86_64/gemm_ncopy_4.S:194: Error: undefined symbol
RPREFETCHSIZE' in operation
../kernel/x86_64/gemm_ncopy_4.S:195: Error: undefined symbol
RPREFETCHSIZE' in operation
則執(zhí)行:?gmake clean
vim?Make.rule
修改
VERSION?=?1.13?(去掉注釋)
TARGET?=?NEHALEM/OPTERON
CC=gcc
BINARY=64????????/*如果你是用的是64位進行該操作*/
USE_OPENMP?=?1
INTERFACE64?=?1
INTERFACE64=1
關(guān)閉
執(zhí)行./ quickbuild.64bit
make BINARY=64 TARGET=NEHALEM/ 或者OPTERON(取決于電腦情況)
2.2 編譯正常的話,會在目錄下生成libgoto2.a 和libgoto2.so文件
3、HPL程序的編譯
HPL下載:
HPL - A Portable Implementation of the High-Performance Linpack Benchmark for Distributed-Memory Computers (netlib.org)
?解壓HPL程序包
cd hpl-2.3(進去目錄)
//從hpl/setup目錄下拷貝Make.Linux_ATHLON_CBLAS(具體根據(jù)電腦情況選擇)文件到hpl/目錄下,并將文件更名為Make.test
(從setup目錄中選擇一個和自己實際的測試平臺最相似的配置文件,將其復(fù)制到hpl根目錄下,因為我的電腦是AMD的,(可以查看?CPU 型號是 Intel 的 NEHALEM 架構(gòu)還是 AMD 的 OPTERON?架構(gòu)cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq)所以我選擇Make.Linux_ATHLON_CBLAS )
cp setup/Make.Linux_ATHLON_CBLAS?Make.test(宗旨是拷貝setup里適合自己電腦的文件然后進行修改,拷貝完改個名交Make.test)
可以重新命名以示區(qū)別,這也是因為編譯Make文件比較麻煩,所以建議先拷貝一個Make文件的例子
?Make配置文件中有大量的注釋信息,可以借助grep之類的工具將真正有用的參數(shù)篩選出來
??cat Make.test |grep -v "#"
?SHELL ???????= /bin/sh
?CD ??????????= cd
?CP ??????????= cp
?LN_S ????????= ln -s
?MKDIR ???????= mkdir
?RM ??????????= /bin/rm -f
?TOUCH ???????= touch
?ARCH ????????= Linux_PII_FBLAS???????????????<--系統(tǒng)架構(gòu)名稱
?TOPdir ??????= $(HOME)/hpl???????????????????<--hpl程序所在的目錄
?INCdir ??????= $(TOPdir)/include
?BINdir ??????= $(TOPdir)/bin/$(ARCH)
?LIBdir ??????= $(TOPdir)/lib/$(ARCH)
?HPLlib ??????= $(LIBdir)/libhpl.a
?MPdir ???????= /usr/local/mpi??????????????????<--mpi所在的目錄?
?MPinc ???????= -I$(MPdir)/include
?MPlib ???????= $(MPdir)/lib/libmpich.a???????????<--mpi庫文件
?LAdir ???????= $(HOME)/netlib/ARCHIVES/Linux_PII???????????<--GotoBlas庫所在的路徑
?LAinc ???????=
?LAlib ???????= $(LAdir)/libf77blas.a $(LAdir)/libatlas.a ??<--Gotoblas庫文件所在的路徑
?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/g77
?LINKFLAGS ???= $(CCFLAGS)
?ARCHIVER ????= ar
?ARFLAGS ?????= r
?RANLIB ??????= echo
參數(shù)配置很麻煩
注意配置好MPICH? Gotoblus? hpl文件? 三個參數(shù)(注意最后CCFLAGS后、LINKER前的那一行,記得加上-pthread)?
設(shè)置好hpl程序的編譯參數(shù)之后,通過命令make arch=test來指定編譯配置文件,開始進行編譯,編譯完成后,將在hpl目錄的bin/test/下生成HPL.dat和xhpl兩個文件,其中HPL.dat是hpl測試時參數(shù)的配置文件,xhpl是hpl測試時被執(zhí)行的mpi程序。如果失敗(大概率參數(shù)問題),重新編譯前make arch=test? ? ?
clean_arch_all
cd hpl/bin/test
mpirun -np 4 ./xhpl就可以成功運行
如果是參加ASC,祝你好運(很拼硬件的,尤其是顯卡)
如果是河師大的同學(xué),更祝你好運(柴老師yyds!)
總結(jié)
以上是生活随笔為你收集整理的(LINPACK)HPL测试成功步骤整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1+1>2,维也纳酒店欧暇·地中海如何打
- 下一篇: centos7 zabbix短信告警(阿