Liunx下HPCC(HPC Challenge)的安裝運行

安裝運行步驟

  • 下載安裝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的結果文件
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章