文章目录
所有软件安装在了用户目录,具体安装目录根据实际情况更改
系统: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安装
下载地址 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是常用的高性能并行计算机基准测试程序
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
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
本文详细介绍了MPI的安装与配置,包括mpich的编译和环境变量设置;NPB的介绍、问题规模和安装指南,以及Linpack的安装,涉及gotoblas和hpl的配置。

7138

被折叠的 条评论
为什么被折叠?



