安装HPL之前需要配置好:
1.GCC/Fortran77 编译器
2.BLAS/CBLAS/ATLAS 库
3.MPICH 并行环境
1.GCC/Fortran77 编译器
gfortran -v
gcc -v
#检查环境,若没有安装
yum install gcc
yum install gcc-gfortran
2.安装向量和矩阵运算库函数
BLAS/CBLAS/ATLAS 库
#安装步骤
#下载 blas-3.8.0.tgz:
wget http://www.netlib.org/blas/blas-3.8.0.tgz
tar -xzf blas-3.8.0.tgz
cd BLAS-3.8.0
make #编译生成blas_LINUX.a
ar rv libblas.a *.o #链接.o文件生成libblas.a文件
cd .. #返回上级目录
#下载 cblas.tgz:
wget http://www.netlib.org/blas/blast-forum/cblas.tgz
tar -xzf cblas.tgz
cd CBLAS
#将第4步产生的.a文件拷贝到当前目录:
cp ../BLAS-3.8.0/blas_LINUX.a ./
vim Makefile.in
#在Makefile.in里修改这两个
BLLIB = ../blas_LINUX.a
CBLIB = ../lib/cblas_$(PLAT).a
#保存
make
./testing/xzcblat1 #测试运行
3.MPICH 并行环境
#下载 mpich-3.2.1.tar.gz
wget http://www.mpich.org/static/downloads/3.2.1/mpich-3.2.1.tar.gz
tar xzf mpich-3.2.1.tar.gz
cd mpich-3.2.1
./configure --prefix=/usr/local/mpich # --prefix这一参数是设置安装的路径,根据需要设置合适的路径即可
make
make install 设置环境变量#vi ~/.bashrc 或者.bash_profile 增加环境变量#export PATH="/usr/local/mpich/bin:$PATH" export MPI_HOME=/usr/local/mpich/
export PATH=$MPI_HOME/bin:$PATH
export PATH=$PATH:$MPI_HOME/include
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MPI_HOME/lib
export MANPATN=$MANPATH:$MPI_HOME/mansource ~/.bashrc
which mpicc #检查
which mpif90 #检查mkdir machinefile # 创建目录
#测试运行
mpiexec -f machinefile -n 3 hostname && mpiexec -n 5 -f machinefile ./examples/cpi
4.Linpack之HPL测试 (HPL Benchmark)
cp CBLAS/lib/* /usr/local/lib
cp BLAS-3.8.0/blas_LINUX.a /usr/local/libwget http://www.netlib.org/benchmark/hpl/hpl-2.3.tar.gz
tar -xzf hpl-2.3.tar.gz
cd hpl-2.3
cp setup/Make.Linux_PII_CBLAS ./
vim Make.top
arch = Linux_PII_CBLAS #保存并退出
vim Makefile
arch = 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 = /root/hpl-2.3
INCdir = $(TOPdir)/include
BINdir = $(TOPdir)/bin/$(ARCH)
LIBdir = $(TOPdir)/lib/$(ARCH)
HPLlib = $(LIBdir)/libhpl.a
MPdir = /usr/local/mpich
MPinc = -I$(MPdir)/include
MPlib = $(MPdir)/lib/libmpi.so /usr/lib64/libpthread.so /usr/lib64/libc.so
LAdir = /usr/local/lib
LAinc =
LAlib = $(LAdir)/cblas_LINUX.a $(LAdir)/blas_LINUX.a
F2CDEFS =
HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc)
HPL_LIBS = $(HPLlib) $(LAlib) $(MPlib)
HPL_OPTS = -DHPL_CALL_CBLAS
HPL_DEFS = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)
CC = /usr/local/mpich/bin/mpicc
CCNOOPT = $(HPL_DEFS)
CCFLAGS = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops
LINKER = /usr/local/mpich/bin/mpif90
LINKFLAGS = $(CCFLAGS)
ARCHIVER = ar
ARFLAGS = r
RANLIB = echo
ARCH :系统架构名称
TOPdir :hpl程序包解压后所在的路径
HPLlib :libhpl.a文件所在位置,一般都在hpl程序目录下
MPdir :mpi安装位置
LAdir :GotoBlas库所在路径
LAlib :GotoBlas库文件所在路径
CC:mpicc所在的位置
LINKEY :gfortran编译器所在位置
#测试
make arch=Linux_PII_CBLAS
cd bin/Linux_PII_CBLAS
mpirun -np 4 ./xhpl > HPL-Benchmark.txt
如果报错,可能原因有,Make.Linux_PII_CBLAS中的路径没有改对,路径要与自己实际的安装路径相符,可以一一对照,看看路径下对应的文件是否存在。也可能原因,Makefile文件格式严苛,不要随意用空格,路径前后有空格虽然看不出来,但是Makefile文件能认出来。路径特别是mpich-install的路径不要弄错,环境变量再检查检查。若还不行,按照步骤删掉,都重来一遍。