1.下载SPECFEM3D源码
先在用户根目录创建一个文件夹($代表命令行)
$ mkdir specfem3d
$ cd specfem3d
进入后在终端执行以下命令下载源代码
$ git clone --recursive --branch devel https://github.com/geodynamics/specfem3d.git
下载完毕后会出现一个specfem3d文件夹,里面是源代码
2.下载安装MPI库-openmpi
去官网下载:https://www.open-mpi.org/
下载后解压,我当前就解压在用户根目录
进入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的可执行文件目录
保存退出,更新完后,执行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根目录
在终端执行以下命令安装带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
或类似名称
执行以下命令进行安装
$ sudo apt-get install zlib1g-dev
安装后再执行 make
命令
$ make
如果编译过程没有提示错误,一直安装到最后,便说明安装成功了
测试例子,进入EXAMPLES文件夹,执行测试的脚本文件
可以看到正在计算
计算完毕