HPL+Openmpi+GOTOBLAS2

HPL+Openmpi+GOTOBLAS2

终于成功了!!!

废话:之前mpi安装的有问题,编译完之后不能mpirun真的让人头大。。于是我就卸载了之前安装的mpich和lam4-dev,然后安装了openmpi

本篇参照:这个博客

Openmpi的安装

  • 解压tar -zxvf openmpi-3.1.0.tar.gz
  • 系统配置cd openmpi-3.1.0
  • 然后./configure --prefix=/opt/openmpi

※:/opt/openmpi是安装路径,打开之后应该有bin etc include lib share这几个文件夹

  • 编译 make
  • 安装make install
  • 配置环境变量vim /etc/profile
  • 添加:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/openmpi/lib
export PATH=/opt/openmpi/bin:$PATH
export INCLUDE=/opt/openmpi/include:$INCLUDE
  • 运行以下命令使得修改生效:

    source /etc/profile(或者source.bashrc)

安装GOTOBLAS2

由于官网的安装包找不到了,于是我在github上找到了一个mirror

  • git clone到本地
  • 进到cd gotoblas2文件夹中然后执行make BINARY=64 TARGET=NEHALEM 如果编译错误需make cleanmake
    这里有个bug!!!我最后显示的有些问题,但也编译成功生成了libgoto2_nehalemp-r1.13.a
  • 显示生成libgoto2_nehalemp-r1.13.a便达到了目的。

安装HPL

这里贴一个下载地址:http://www.netlib.org/benchmark/hpl/

  • 解压下载的安装包tar -zxvf hpl-2.3.tar.gz

  • 进入cd hpl-2.3文件

  • 根据机器情况复制Makefile模板cd setup然后cp Make.Linux_PII_CBLAS ../Make.test

    这里把setup文件下的模板复制到上一层文件夹中,并重新命名为Make.test

  • vim Make.test配置文件

这里直接贴上我的配置

# 
SHELL        = /bin/sh
#
CD           = cd
CP           = cp
LN_S         = ln -s
MKDIR        = mkdir
RM           = /bin/rm -f
TOUCH        = touch
#
# ----------------------------------------------------------------------
# - Platform identifier ------------------------------------------------
# ----------------------------------------------------------------------
#
ARCH         = test
#
# ----------------------------------------------------------------------
# - HPL Directory Structure / HPL library ------------------------------
# ----------------------------------------------------------------------
#
TOPdir       = /home/challow/nfs/hpl-2.3 # 这里的hpl是你下载的目录
INCdir       = $(TOPdir)/include
BINdir       = $(TOPdir)/bin/$(ARCH)
LIBdir       = $(TOPdir)/lib/$(ARCH)
#
HPLlib       = $(LIBdir)/libhpl.a 
#
# ----------------------------------------------------------------------
# - Message Passing library (MPI) --------------------------------------
# ----------------------------------------------------------------------
#
MPdir        = /opt/openmpi # 如果参照上面的openmpi就安装在这里
MPinc        = -I$(MPdir)/include
MPlib        = $(MPdir)/lib/libmpi.so #!!!!这个东东
#
# ----------------------------------------------------------------------
# - Linear Algebra library (BLAS or VSIPL) -----------------------------
# ----------------------------------------------------------------------

LAdir        =  /home/challow/blas/gotoblas2 # gotoblas2下载的路径
LAinc        =  
LAlib        =  $(LAdir)/libgoto2_nehalemp-r1.13.a # 直接引用中间的包
#
# ----------------------------------------------------------------------
# - F77 / C interface --------------------------------------------------

F2CDEFS      =
#
# ----------------------------------------------------------------------
# - HPL includes / libraries / specifics -------------------------------
# ----------------------------------------------------------------------
#
HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc)
HPL_LIBS     = $(HPLlib) $(LAlib) $(MPlib)
#
# - Compile time options -----------------------------------------------
#
HPL_OPTS     = -DHPL_CALL_CBLAS
#
# ----------------------------------------------------------------------
#
HPL_DEFS     = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)
#
# ----------------------------------------------------------------------
# - Compilers / linkers - Optimization flags ---------------------------
# ----------------------------------------------------------------------
#
CC           = /opt/openmpi/bin/mpicc  # 这里还是根据openmpi安装的路径
CCNOOPT      = $(HPL_DEFS)
CCFLAGS      = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops
#
#
LINKER       = /opt/openmpi/bin/mpif77  # 这里也可以是mpicc
LINKFLAGS    = $(CCFLAGS)
#
ARCHIVER     = ar
ARFLAGS      = r
RANLIB       = echo
#
# ----------------------------------------------------------------------

※:上面的操作都是基于openmpi的,如果安装其他版本的MPI道理一样,不过在MPlib = $(MPdir)/lib/libmpi.so

做相应的更改!xxxx/libmpi.a或者xxxx/libmpichxx.a等等文件。

  • 然后直接make arch=test即可!

编译完会在bin下面生成test文件夹,里面有HPL.dat xhpl两个文件。HPL.dat是运行的参数,这里可以自行修改。使用命令mpirun -np 4 ./xhpl就可以成功运行!

后语

这是一个锻炼的过程,安装过程可能各种报错。慢慢来,一个一个调就行!大不了卸载重来,哈哈。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值