npb和linpack安装

本文详细介绍了MPI的安装与配置,包括mpich的编译和环境变量设置;NPB的介绍、问题规模和安装指南,以及Linpack的安装,涉及gotoblas和hpl的配置。

所有软件安装在了用户目录,具体安装目录根据实际情况更改
系统:ubuntu22
编译器:gcc11.4.0
架构:x86_64
用到的所有软件包:
链接:https://pan.baidu.com/s/1ykgvA2b0sMO7hSKcPU4qkg?pwd=xw82
提取码:xw82

安装总结

npb和linpack都需要安装mpi,linpack另外需要gotoblas库。mpi直接用gcc编译安装即可,npb和linpack都要使用mpicc和mpif77编译,npb需要修改配置文件config/make.def ,linpack需要修改setup/Make.*文件。

1.MPI

1.1mpi安装

两小时入门MPI与并行计算(二):MPI的安装与配置 - 知乎 (zhihu.com)

下载地址 https://www.mpich.org/downloads/
wget http://www.mpich.org/static/downloads/3.3.2/mpich-4.2.0rc1.tar.gz
tar -zxvf mpich-4.2.0rc1.tar.gz
cd mpich-4.2.0rc1
mkdir build
cd build
../configure  --prefix=/home/lx/local/mpich-4.2.0rc1 # make编译好的可执行程序会放在build文件夹,然后make install会把可执行程序复制粘贴到--prefix指定的文件夹中,prefix的文件夹会自动创建
make
make install

configure错误

 The Fortran compiler gfortran will not compile files that call
the same routine with arguments of different types.

解决:gcc11安装mpich3.3.2有版本问题,所以安装mpich-4.2.0rc1.tar.gz

1.2配置mpi环境变量

vim ~/.bashrc # 这是用户环境变量

export PATH="/home/lx/local/mpich-4.2.0rc1/bin:$PATH"  #在bashrc文件中最后一行加入这行命令,每次使用该用户登录,就会自动执行~/.bashrc中的shell命令,从而将mpi的可执行程序加入PATH环境变量

2. NPB

2.1 npb介绍

https://blog.csdn.net/todleigh/article/details/2027857

NPB benchmark(NAS Parallel Benchmarks)使用、安装和配置_npb测试-CSDN博客

NPB是常用的高性能并行计算机基准测试程序

npb中8个基准程序模拟CFD应用中的计算和数据移动:

  • 5个内核
    • IS ,整数排序,随机内存访问
    • EP , 令人尴尬的并行任务
    • CG , 共轭梯度,不规则的记忆存取和通信
    • MG , 多重网格对序列网格,长、短距离通信,内存密集型
    • FT , 离散三维快速傅里叶变换,全对全通信
  • 3个伪应用程序
    • BT ,三对角求解器
    • SP , 五对角求解器
    • LU , 高斯求解器

2.2 问题规模

S级:较小,用于快速测试
W级:工作站大小(90年代的工作站;现在可能太小了)
A,B,C级:标准测试问题; 从一个类到下一个类,大小增加约4倍
D,E,F级:大型测试问题; 与之前的每个类相比,大小增加了约16倍

不同的npb版本有不同的问题规模,并且使用了不同的编程模型。

编程模型有MPI、OpenMP、MPI+OpenMP、串行、Globus、java、HPF、

2.3 NPB安装

可以从http://www.nas.nasa.gov/Resources/Software/npb.html 下载

1.
cd NPB3.4.2/NPB3.4-MPI
cp conf/make.def.template conf/make.def

2.修改conf/make.def文件(只改编译器,不该lib和include也行)
33行:MPIF77=mpif77 #设定编译器
    35行:FLINK   = mpif77
    40行:FMPI_LIB = -L/data2/software/mpich-gcc/lib -lmpich #连接器会到这里找MPICH库
    45行:FMPI_INC = -I /data2/software/mpich-gcc/include #mpif.h在该路径下
    80行: MPICC = mpicc
    82行:CLINK   = mpicc
    87行: CMPI_LIB  = -L/data2/software/mpich-gcc/lib/ -lmpich
    93行:CMPI_INC = -I /data2/software/mpich-gcc/include   #mpi.h在该路径下
    
3.编译npb程序
不同版本的NPB编译流程有些不同,可以查看目录下的README.INSTALL确定安装过程。
3.1 可以根据config/suite.def配置文件来同时编译npb的程序
make suite

3.2 一个一个编译,不同版本的npb命令不一样,练习的话直接make suite同时编译就好,想一个一个编译的话,最好看一下目录下给的安装流程,讲的很详细。
# 编译单个npb程序的命令用法
make <benchmark-name> NPROCS=<number> CLASS=<class>     [SUBTYPE=<type>] [VERSION=VEC]
C类,D类和E类不适用于DT。类别E不适用于IS。“VERSION=VEC”选项用于选择BT和LU的向量化版本。
make IS(指定哪个程序)CLASS=B(指定问题规模)NPROCS=8(指定运行的处理器个数)

 make IS CLASS=A  #问题规模为A
 即会在NPB2.4-MPI/bin/目录下生成is.A.16可执行文件

4.mpirun执行npb程序
mpirun -np 8 is.B.8 #8个进程运行npb程序is.B.8

5.也可以写脚本执行,我没有用这种方式
#!/bin/sh

#PBS -N IS_TEST //指定任务名
#PBS -o IS_TEST.log//指定标准输出
#PBS -e IS_TEST.err//指定标准出错
#PBS -q batch //指定任务队列
#PBS -l nodes=16//指定进程数,要和编译的时候指定的进程数对应	

cd /home/xx/NPB2.4/NPB2.4-MPI/bin
echo TIME is `date`
echo DIRECTORY is $PWD
echo This job runs on following nodes:
cat $PBS_NODEFILE
NPROCS=`wc -l < $PBS_NODEFILE`
echo This job has been allocated $NPROCS nodes
mpirun -machinefile $PBS_NODEFILE -np $NPROCS ./is.A.16 //执行


执行:qsub test.sh
执行:qstat,即可以看到任务状态
执行完毕后,打开 IS_TEST.log,就可以得到结果了。

3. linpack

Linpack 安装和使用步骤_linpack是什么意思-CSDN博客

Linpack安装、配置与运行-CSDN博客

Linpack搭建之GotoBLAS2的保姆级安装配置及常见问题(ubuntu)_gotoblas安装-CSDN博客

3.1 linpack介绍

linpack用于测试高性能计算机浮点性能,通过利用高性能计算机,用高斯消元法求解N元一次稠密线性代数方程组的测试,评价高性能计算机的浮点性能。

3.2linpack安装

系统:ubuntu22

gcc:11

并行环境:mpi4.1.2

基本线性代数子方程:BLAS 或者矢量图形信号处理库(VSIPL)

3.2.1 安装mpi

安装方法和npb一样

3.2.2 安装gotoblas库

gotoblas是一个数学运算库

gotoblas下载地址https://www.tacc.utexas.edu/research-development/tacc-software/gotoblas2
详细安装方法可以查看GotoBLAS目录下的02QuickInstall.txt
1. 为了避免lapack下载过慢,提前将lapack-3.1.1.tgz,放在GotoBLAS目录下
2. 如果出现该错误:/usr/bin/ld: cannot find -l-l: No such file or directory,则:
vi f_check
# 298行改为如下:
# print MAKEFILE "FEXTRALIB=$linker_L -lgfortran -lm -lquadmath -lm $linker_a\n";

3.
tar -xvzf GotoBLAS2-1.13.tar.gz #一定要在linux下解压
cd GotoBLAS2-1.13 # 进入到解压好的文件夹中
make CC=gcc BINARY=64 TARGET=NEHALEM 

装好后会生成 libgoto2_nehalemp-r1.13.a,软链接llibgoto2.a会指向该静态库
问题解决
1.lapack下载过慢的话,直接下载好lapack-3.1.1.tgz,放在GotoBLAS目录下

2. 
/usr/bin/ld: cannot find -l-l: No such file or directory
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:101: ../libgoto2_nehalemp-r1.13.so] Error 1
make[1]: Leaving directory '/home/lx/download/linpack/GotoBLAS2/exports'
make: *** [Makefile:49: shared] Error 2

解决方法:
vi f_check
# 298行改为如下:
# print MAKEFILE "FEXTRALIB=$linker_L -lgfortran -lm -lquadmath -lm $linker_a\n";

3.2.3 安装hpl-2.3,即linpack

hpl也就是linpack的下载地址 http://www.netlib.org/benchmark/hpl/
详细安装方法可以查看hpl目录下的INSTALL文件
tar -zxf  hpl-2.3.tar.gz
cd hpl-2.3
cp setup/Make.Linux_PII_FBLAS . #代表linux操作系统,PII平台,使用FBLAS库
vi Make.Linux_PII_FBLAS # 修改hpl、mpi、gotoblas根目录,mpi库改成Libmpich.so,gotoblas库名字为修改为libgoto2.a和libgoto2.so,CC使用mpicc,linker使用mpif77。具体修改内容如下:
#  Make.Linux_PII_FBLAS内容
 70 TOPdir       = /home/lx/download/linpack/hpl-2.3
 71 INCdir       = $(TOPdir)/include
 72 BINdir       = $(TOPdir)/bin/$(ARCH)
 73 LIBdir       = $(TOPdir)/lib/$(ARCH)
 74 #
 75 HPLlib       = $(LIBdir)/libhpl.a

 84 MPdir        = /home/lx/local/mpich-4.2.0
 85 MPinc        = -I$(MPdir)/include
 86 MPlib        = $(MPdir)/lib/libmpich.so

 95 LAdir        = /home/lx/download/linpack/GotoBLAS2
 96 LAinc        =
 97 LAlib        = $(LAdir)/libgoto2.a $(LAdir)/libgoto2.so

169 CC           = /home/lx/local/mpich-4.2.0/bin/mpicc

176 LINKER       = /home/lx/local/mpich-4.2.0/bin/mpif77
# 开始编译
make arch=Linux_PII_FBLAS -j4
编译成功后在bin/Linux_PII_FBLAS/下会生成xhpl和HPL.dat两个文件

#用mpirun执行xhpl,使用top查看可以看到4个xhpl程序在运行,运行记录保存在了linpack.txt中,程序执行一会后可以用ctrl+c中断程序
cd bin/Linux_PII_FBLAS
mpirun -np 4 ./xhpl > linpack.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值