HPC Challange测试本地安装与运行

作业记录

HPCC简介

HPCC 基准目前包含 7 个基准:HPL、STREAM、RandomAccess、PTRANS、FFTE、DGEMM 和 b_eff 延迟/带宽。HPL 是 Linpack TPP 基准;该测试强调系统的浮点性能。STREAM 是衡量可持续内存带宽(以 GB/s 为单位)的基准,RandomAccess 衡量内存随机更新的速率。PTRANS 测量来自多处理器内存的大型数据阵列的传输速率。延迟/带宽测量(顾名思义)在尽可能多的节点之间增加复杂性的通信模式的延迟和带宽,这在时间上是可行的。

称为高度并行计算基准的 Linpack 基准可以在Linpack 基准报告 (PDF) 的表 3 中找到。该基准测试试图衡量机器在求解方程组时的最佳性能。可以选择问题的大小和软件以产生最佳性能。HPL是用于TOP500报告的基准。

HPC 挑战基准测试旨在扩大对高性能系统进行基准测试的范围。Top500 使用一个指标,即 Linpack 基准 (HPL),对当今使用的 500 个最快的计算机系统进行排名。HPC 挑战赛不会对系统进行排名,但会提供一组用于评估和比较的指标。Top500 列出了当今使用的 500 个最快的计算机系统。该系列于 1993 年启动,此后每 6 个月更新一次。该报告列出了安装了 500 个最强大计算机系统的站点。获得的最佳 Linpack 基准性能被用作对计算机进行排名的性能指标。TOP500榜单自1993年6月起每年更新两次。

初始化

程序/软件包版本信息
VMwarePro 12
Linux4.15.0-143.generic
Ubuntu18.04.5 LTS
gcc7.5
MPI3.4rc1
BLAS3.8.0
CBLAS/
Lapack3.3.0
HPCC1.5.0

MPI的安装

首先我们在ubuntu系统上安装mpi,
mpi软件包来自http://www.mpich.org/static/downloads/
解压后有:
图1. mpi包的解压文件(配置后)
然后需要使用./configure指令配置安装属性,

./configure -prefix=/usr/local/mpich

由于原代码使用了sudo指令,而我的系统无法识别sudo下的configure指令,在查询后先使用autoconf配置,然后运行configure指令成功,prefix后面是指定的安装路径。然后继续make和make install安装mpi即可。(这步比较耗时)

然后对环境变量进行配置,在bashrc后面添加mpi的bin路径。由于我的系统识别不了source指令,使用指令sudo -s切换为root用户后,再进行更新配置文件即可。

编写一个简单的c文件,使用mpicc编译和mpirun运行文件。

其实这种方法并不能保证安装成功,在我的测试环境下,后续中遇到了mpi未安装到指定目录的问题(有可能是以前安装的残留,可使用apt-get remove mpi等指令来清理旧版本),而这个程序也是可以使用mpi指令编译和运行的,建议使用mpiexec -v来查看版本测试安装情况。

blas和cblas的安装

blas来自http://www.netlib.org/blas/blas
cblas来自http://www.netlib.org/blas/blast-forum/cblas.tgz
使用tar命令解压后直接进行make,然后将他们包含的可执行文件复制到/usr/local/lib目录下。
blas解压后和make编译后的内容,其中blas_LINUX.a是我们需要复制的
cblas解压和make编译后的内容,其中cblas_LINUX.a是我们需要复制的

这里可能会出现编译问题(或者在mpi进行make编译时),需要检查gcc的安装情况与配置,因为基本上ubuntu系统会自带编译器,需要进行更新或者重装。(可使用build-essential自动安装)

lapack的安装

lapack包tar解压后的文件

其中在make编译前,需要将make.inc.example更名为make.inc(正常情况下需要查看make.inc.example里的编译配置文件,我的环境安装没有问题就没有改参数)再进行编译。然后将两个可执行文件移动到/usr/local/lib文件夹里(liblapack.a和libtmglib.a)

cp *.a /usr/local/lib

HPCC的安装

首先下载HPCC源代码,来自
https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/hpcc/1.5.0-1/hpcc_1.5.0.orig.tar.gz
解压后进入hpcc-1.5.0文件夹,
解压后的hpcc文件夹
然后进入hpl/setup文件夹,从中复制 Make.Linux_PII_CBLAS 到上一级(也就是 hpl )文件夹中,并将其改名为 Make.name。然后修改Make.name中的关于之前下载的程序包路径信息:
ARCH指定的是输入的名称,也就是前面修改的.name。下面的路径指的是HPL库的信息,这里不需要更改
在这里插入图片描述
在这里配置MPI库文件和对应安装目录的信息,对应我之前安装的路径即可
在这里插入图片描述
这里指定的是之前下载的cblas和blas文件,按照之前复制的路径配置即可

在这里插入图片描述
这里指定的HPL_LIBS是进行make编译时的后缀flag(可能不叫flag,是用于指定链接库文件的指令),因为g77已经过时而我们使用gfortran编译的话会产生很多问题,后面会详细介绍

在这里插入图片描述
图12. 这里需要配置我们交叉编译使用的LINKER为gfortran(g77安装需要更新旧的安装镜像,较繁琐而且也会有链接问题),LINKFLAGS里需要增加缺少的flag(我加的是-pthread,后面的-lrt和-ldl是链接库的指令,需要在图11里的HPL_LIBS后添加)

如图12所示,我们更改g77编译器为gfortran,需要检查一下gfortran的安装
在这里插入图片描述

我这里出现的问题是gfortran命令没有在/usr/bin/里,可能是因为我旧版本删除和新版本安装没有匹配的情况,如果出现的话需要对旧版本删除和新版本的更新,然后查看gfortran的安装是否正常。

配置好后如果没有增加我自己添加的flag文件和库文件链接指令就会出先undefined reference或/usr/bin/ld找不到lgcc_s等问题,
在这里插入图片描述
因为这种问题出现的情况不同,所以需要查看README安装文档查询
在这里插入图片描述
在这里插入图片描述
由图16的线索,进入相关文件查看信息(由于已经编译成功所以没有办法查看)。里面可以看到指定编译的规则,了解到flag和库链接指令的位置不同,一个在命令中文件名后,一个在命令末尾,在图12中的文件里增加相关的命令即可。缺少什么就加什么,可使用谷歌检索缺少的链接或flag,我增加的链接是-ldl和-lrt,增加的flag是-pthread。然后make编译成功。

运行HPCC

HPCC文件下hpccinf.txt是测试输入文件,hpccoutf.txt是测试输出文件,这里使用的是默认的输入,将原本的_hpccinf.txt更改为hpccinf.txt后,运行即可(不要用root权限运行;线程数要大于等于4)

mpirun -np 2./hpcc

其中具体需要移动哪些文件和更改哪些文件名见参考:

如何从零开始在ubuntu上安装hpcc或者hpl-Pan’s pidr

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值