安裝運行步驟
-
下載安裝mpich
或者其他MPI實現應該也行,參考網上相關教程,已安裝則可以忽略這一步。
-
下載安裝blas
wget http://www.netlib.org/blas/blas.tgz tar zxvf blas.tgz cd BLAS-3.8.0/ # sudo apt-get install gfortran 如果沒有fortran編譯器需要先安裝一下gfortran gfortran -c -O3 *.f # 編譯所有的 .f 文件,生成 .o文件 ar rv libblas.a *.o # 鏈接所有的 .o文件,生成 .a 文件 cp libblas.a /home/huangxinxin/hpcc/lib/ # 將.a文件拷到相關目錄下
-
下載安裝cblas
wget http://www.netlib.org/blas/blast-forum/cblas.tgz tar zxvf cblas.tgz cd CBLAS/ cp Makefile.LINUX Makefile.in # Linux環境下使用Makefile.LINUX cp /home/huangxinxin/hpcc/lib/libblas.a testing/ # 將上個步驟編出來的libblas.a拷到testing目錄下 make cp lib/cblas_LINUX.a /home/huangxinxin/hpcc/lib/libcblas.a # 將編出來的庫文件拷到相關目錄下
-
hpcc源碼下載
wget http://icl.cs.utk.edu/projectsfiles/hpcc/download/hpcc-1.5.0.tar.gz tar zxvf hpcc-1.5.0.tar.gz cd hpcc-1.5.0
-
Make文件編寫
cp hpl/setup/Make.Linux_PII_CBLAS hpl/Make.Linux
Make.Linux需要根據自己的環境信息進行修改,主要有以下幾個配置項:
- MPdir、MPinc、MPlib這幾個和MPI相關的配置項可以註釋掉
- HPL_LIBS後面加上blas、cblas庫的連接信息:
-L/home/huangxinxin/hpcc/lib/ -lcblas -lblas
- CC配置項將gcc替換成mpicc:
CC = /usr/local/bin/mpicc
- LINKER配置項將g77替換成mpif77,如:
LINKER = /usr/local/bin/mpif77
以下爲Make文件的一個Demo:
SHELL = /bin/sh CD = cd CP = cp LN_S = ln -s MKDIR = mkdir RM = /bin/rm -f TOUCH = touch ARCH = $(arch) TOPdir = ../../.. INCdir = $(TOPdir)/include BINdir = $(TOPdir)/bin/$(ARCH) LIBdir = $(TOPdir)/lib/$(ARCH) HPLlib = $(LIBdir)/libhpl.a F2CDEFS = HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc) HPL_LIBS = $(HPLlib) $(LAlib) $(MPlib) -lm -lcblas -lblas HPL_OPTS = -DHPL_CALL_CBLAS HPL_DEFS = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES) CC = /usr/local/bin/mpicc CCNOOPT = $(HPL_DEFS) CCFLAGS = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops LINKER = /usr/local/bin/mpif77 LINKFLAGS = $(CCFLAGS) ARCHIVER = ar ARFLAGS = r RANLIB = echo
-
編譯hpcc
make arch=Linux # arch的值爲hpl目錄下Make.Linux的後綴,make操作需要在頂層目錄執行,即hpcc-1.5.0,執行完在該目錄會生成一個名爲hpcc的可執行文件
-
運行hpcc
cp _hpccinf.txt hpccinf.txt # hpccinf.txt中包含了許多運行時的配置項,可以自己研究一下 mpirun -np 2 ./hpcc # 運行結束後會在當前目錄生成一個hpccoutf.txt的結果文件