1.下载SPECFEM3D源码

先在用户根目录创建一个文件夹($代表命令行)

$ mkdir specfem3d
$ cd specfem3d

进入后在终端执行以下命令下载源代码

$ git clone --recursive --branch devel https://github.com/geodynamics/specfem3d.git

下载完毕后会出现一个specfem3d文件夹,里面是源代码

Ubuntu 20.04上安装SPECFEM3D的记录

2.下载安装MPI库-openmpi

去官网下载:https://www.open-mpi.org/

下载后解压,我当前就解压在用户根目录

Ubuntu 20.04上安装SPECFEM3D的记录(openmpi安装)

进入openmpi-4.1.1目录下去编译安装(提前安装gfortran, gcc编译器)

$ cd /home/shine/openmpi-4.1.1/
$ ./configure --prefix=$HOME/openmpi
$ make all
$ make install

配置环境变量,否则SPECFEM3D中运行openmoi将报错。回到用户目录

$ cd /home/shine

编辑该目录下的 .bashrc 文件

 $ vi .bashrc

进入编辑模式后在最后的 PATH路径中加上刚编译完的openmpi的可执行文件目录

Ubuntu 20.04上安装SPECFEM3D的记录(openmpi安装)

保存退出,更新完后,执行source .bashrc更新系统设置

$ source .bashrc

查看路径有没有成功添加,可以输出路径或者查看版本能否正确显示

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/shine/SeismicUnix/bin:/home/shine/openmpi/bin

$ mpiexec --version
mpiexec (OpenRTE) 4.1.1

Report bugs to http://www.open-mpi.org/community/help/
$ mpirun --version
mpirun (Open MPI) 4.1.1

Report bugs to http://www.open-mpi.org/community/help/

出现上述输出内容的话说明openmpi安装成功

3.编译SPECFEM3D

进入SPECFEM3D根目录

Ubuntu 20.04上安装SPECFEM3D的记录

在终端执行以下命令安装带MPI的版本

$ ./configure FC=gfortran CC=gcc MPIFC=$HOME/shine/openmpi/bin/mpif90 MPI_INC=$HOME/shine/openmpi/include --with-mpi
$ make

在编译SCOTCH源代码时,如果出现 “ld: cannot find -lz” 之类的报错信息,可能是你的机器缺少Zlib压缩开发库,需要先安装。 在 Linux 机器上,该包通常称为 zlib1g-dev 或类似名称

Ubuntu 20.04上安装SPECFEM3D的记录

执行以下命令进行安装

$ sudo apt-get install zlib1g-dev

安装后再执行 make 命令

$ make

如果编译过程没有提示错误,一直安装到最后,便说明安装成功了

Ubuntu 20.04上安装SPECFEM3D的记录

测试例子,进入EXAMPLES文件夹,执行测试的脚本文件

Ubuntu 20.04上安装SPECFEM3D的记录

可以看到正在计算

Ubuntu 20.04上安装SPECFEM3D的记录

计算完毕

Ubuntu 20.04上安装SPECFEM3D的记录


长风破浪会有时,直挂云帆济沧海。