(LINPACK)HPL测试成功步骤整理

gcc/g++/gfortran 得有

//ubuntu  sudo apt install gcc(以此类推)

并行环境mpich,

基本线性代数子方程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

如果出现正确路径,则说明安装成功。

2、GotoBLAS2安装

下载位置GotoBLAS:百度网盘 请输入提取码

2.1 解压GotoBLAS包之后,在解压后的目录下执行./ quickbuild.64bit进行快速安装,如果安装正常,在本目录下就会生成libgoto2.a和libgoto2.so两个文件

        执行./ quickbuild.64bit

        make BINARY=64 TARGET=NEHALEM/ 或者OPTERON(取决于电脑情况)

若出现如下:

 ../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

则执行: gmake clean

vim Make.rule

修改

VERSION = 1.13 (去掉注释)

TARGET = NEHALEM/OPTERON

CC=gcc

BINARY=64        /*如果你是用的是64位进行该操作*/

USE_OPENMP = 1

INTERFACE64 = 1

INTERFACE64=1

关闭

执行./ 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(具体根据电脑情况选择)文件到hpl/目录下,并将文件更名为Make.test

(从setup目录中选择一个和自己实际的测试平台最相似的配置文件,将其复制到hpl根目录下,因为我的电脑是AMD的,(可以查看 CPU 型号是 Intel 的 NEHALEM 架构还是 AMD 的 OPTERON 架构cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq)所以我选择Make.Linux_ATHLON_CBLAS )

cp setup/Make.Linux_ATHLON_CBLAS Make.test(宗旨是拷贝setup里适合自己电脑的文件然后进行修改,拷贝完改个名交Make.test)

可以重新命名以示区别,这也是因为编译Make文件比较麻烦,所以建议先拷贝一个Make文件的例子

 Make配置文件中有大量的注释信息,可以借助grep之类的工具将真正有用的参数筛选出来

  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               <--系统架构名称

 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

参数配置很麻烦

注意配置好MPICH  Gotoblus  hpl文件  三个参数(注意最后CCFLAGS后、LINKER前的那一行,记得加上-pthread) 

设置好hpl程序的编译参数之后,通过命令make arch=test来指定编译配置文件,开始进行编译,编译完成后,将在hpl目录的bin/test/下生成HPL.dat和xhpl两个文件,其中HPL.dat是hpl测试时参数的配置文件,xhpl是hpl测试时被执行的mpi程序。如果失败(大概率参数问题),重新编译前make arch=test     

clean_arch_all

cd hpl/bin/test

mpirun -np 4 ./xhpl就可以成功运行

如果是参加ASC,祝你好运(很拼硬件的,尤其是显卡)

如果是河师大的同学,更祝你好运(柴老师yyds!)

  • 9
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值