hdf5、mpi、cmake、CUDA在Linux中的配置(复现波场正演模拟数据)

git仓库地址:GitHub - gfabieno/SeisCL: Software for viscoelastic full waveform inversion on large heterogeneous clusters

一.Linux的基础指令

下面的指令链接已经足够服务器的配置了,服务器版本是18.04

Linux常用基础指令-CSDN博客

二、配置依赖项

本人是在ubuntu18.04服务器上配置的

1.安装hdf5:

wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.0/src/hdf5-1.12.0.tar.gz

2.安装openmpi:

本人没有使用openmpi,使用的mpi,下面挂的是openmpi,大家也可以选这个。

Open MPI: Open Source High Performance Computing

3.安装MPI

3.1

在开始安装之前,先检查一下是否已经安装好了相应的编译器

which gcc 
which gfortran 

当显示了gcc和gfortran的路径,即可进行下一步的安装,若没有相应的编译器,先安装编译器。通常gcc是ubuntu自带的,gfortran需要安装

pip install gcc
apt-get install gfortran

在linux中,which是用来查询环境变量的地址。而这里所指的环境变量,通俗一点讲就是在当前shell中,这些如gcc这一命令是指向哪个文件。比如你安装了两个版本的gcc编译器,你就需要去设置环境变量,告诉系统当你调用gcc的时候你到底想调用哪个版本的gcc,把你想调用的那个gcc的路径和gcc绑定起来。所以,当执行上述命令,得到了编译器地址,就可以进行下一步了。如果没有,要么是环境变量中没有指定编译器路径,要么是没有安装编译器,安装一下即可。

当检查完编译器之后,去https://www.mpich.org/downloads/ 选择合适的版本下载,我的服务器是没有图形界面的服务器,使用wget命令下载。 tar命令是解压文件的命令。MPI库通常采用的是源码安装,因此,需要使用cd命令进入到解压后的文件夹中,使用./configure进行安装前的设置与检查,由于我们只需要更改一下安装的路径,因此在--prefix这一参数中,设置想要安装的路径。执行这一行之后,就会开始检查编译环境是否满足,此时报错多半是因为编译器安装的问题或者编译器版本不匹配的问题,一般通过安装最新的编译器能解决。这一步成功完成之后,即可使用make命令去执行编译。该路径下makefile文件已经写好了这些源代码的编译规则,因此输入make即可开始按照makefile的规则对源码进行编译。当make完成之后,就可以使用make install命令进行安装了。

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这一参数是设置安装的路径,根据需要设置合适的路径即可,但需要记住安装的位置 
make 
make install

如果没有报错,说明安装成功了

3.2、环境变量配置

安装完成后,可以去之前--prefix设置的路径去看一下安装结果。安装好了之后,还需要告诉系统mpi库的路径地址,这样当你调用mpi的命令时,系统才知道你在干什么。在用户的根目录下,有一个.bashrc的文本文件(默认使用的是bash,如果是zsh等自行查阅资料,我在这里避免信息过多导致初学者疑惑)。这个文件可以理解为,每次打开终端时都会加载的启动项。就是用户的根目录。

vim ~/.bashrc

 通过vim打开当前用户下所对应的.bashrc文件,在其中加入一行(建议添加在最下面一行)

export PATH="/usr/local/mpich-3.3.2/bin:$PATH"  

保存退出之后 ,使用source这一命令执行一下新加的命令。 必须!添加!

source ~/.bashrc

 用which来检验下配置的环境变量是否正确。如果显示了其路径,则说明安装顺利完成了。这时候,进入到最开始解压的文件夹中,到解压的文件夹内的examples文件夹中,测试一下hello是否能顺利运行。

which mpicc 
which mpif90 
mpirun -np 4 ./hello 

 若可运行说明顺利完成安装。

4.安装Cmake:

按照其他教程直接apt-get installcmake下载的版本会很低,低于3.16版本,此时并不能满足需求,所以手动下载Download CMake,该链接是Cmake下载处,选择对应的版本下载。如何在 CentOS 上安装最新版 CMake – OSFERE我选择的是3.24.2,上传在服务器上,然后解压,建议使用tab补全,这样不会有名字书写错误的问题。

tar -zxvf cmake-3.24.2-rc2.tar.gz

然后进入cmake文件夹

cd cmake-3.24.2-rc2

配置cmke

./bootstrap --prefix=/usr/local/cmake

如果有问题的话,在输入

gedit ~/.bashrc

 在环境变量的末尾添加,记得改成自己的路径哈:

export PATH=/home/liurui/cmake-3.24.2-Linux-x86_64/bin:$PATH

然后保存一下

source ~/.bashrc

 安装完毕,进行测试

cmake --version

 

 如果还有问题,可能是缺少openssl,但我本人没有遇到(可能是1.最开始配的时候,已经执行过该文件了2.我提供的方法是源码编译安装)

apt install -y libssl-dev

 5.安装CUDA

服务器本身是含有CUDA的,但是由于正演代码需要使用nvrtc,所以需要配置CUDA。但是不需要配置cudnn

先查看服务器能到达的CUDA版本

nvidia-smi

安装cuda

官方链接:知乎 - 安全中心

download now,跳转安装界面,但这是最新版本,并不是我们需要的,所以去下面找历史版本,进行配置下载。本人经验,偶数版本通常比奇数版本稳定,推荐选择偶数版本

我的cuda支持版本是11.4,所以我选择了11.4.2,根据服务器的需求进行配置即可

下面会生成对应的命令

把命令一条一条的复制进服务器运行即可,我是没有sudo的,所以复制运行的时候,把前面的“sudo“删掉就好啦。通过这个方法80%的可能会下载成功

那么还有20%不成功,就用下面的方法:

把上面他生成的网址,如我这个生成的:https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda_11.4.2_470.57.02_linux.run

会生成下面这个界面:输入accept即可(这张图是网上的,我自己的那个页面没有再保留)

 此时进入下一个页面,在这个页面里面,进入options,把driver这个选项取消选择了,一定一定取消,我最开始就没取消,然后配置失败了。取消之后就安装成功啦

复制到浏览器进行下载,把这个对应版本的cuda下载到本地,然后上传到服务器上,再运行下面的指令即可配置cuda成功。

然后添加环境变量

vim ~/.bashrc

进入编辑模式之后,把下面两行填进去(输入文件夹名字的时候,推荐使用tab,减少出错的概率)

$ export PATH=/usr/local/cuda-11.4/bin${PATH:+:${PATH}}
$ export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64\
                         ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

结束之后,记得保存对环境的修改,输入

source ~/.bashrc

查看cuda版本

nvcc -V

出现这个页面,就说明cuda安装就好啦。

6.开始跑代码

都配置好之后就按照教程跑文件就🆗啦~,记得build路径不要退出就写环境变量哈,如果退出了,咋加都不对啦,就要重新编译了哈~(我被这个问题卡了一下午)

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘瑞瑞rr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值