现在,开始阅读此《GPU Ready Apps Guide》(GPU Ready 应用程序指南)。
SPECFEM3D Globe 用于模拟全球和大陆范围区域的地震波传播。通过此应用程序,研究人员可以分析压缩波速度、剪切波速度、密度、旋转和自重的横向变化对 3D 地壳模型的影响。
最新版本 7.0 基于自动的源到源转换库,提供对 OpenCL 和 CUDA 硬件加速器的 GPU 显卡支持。
SPECFEM3D Globe 在单个 NVIDIA® Tesla® P100 GPU 上的运行速度提升超过 25 倍,可以帮助科学家将地震模拟时间从几周缩短为几小时。
SPECFEM3D_GLOBE 应在支持 MPI 的任何平台上工作。出于达到本指南的目的,我们建议使用以下配置:
1.下载 SPECFEM3D_Globe 7.0.0 源代码
2.解压缩软件包
tar xf SPECFEM3D_GLOBE_V7.0.0.tar.gz
3.必需的编译器
确保 nvcc、gcc 和 gfortran 在系统上可用并且位于您的路径中。如果不可用,请联系系统管理员。
4.配置软件包
./configure --with-cuda=cuda5
请注意,这里我们所做的配置,可使用 CUDA 5.0 及更高版本中更多最新的 CUDA 汇集。
5.构建程序
make
运行 SPECFEM3D Globe 的过程分为两个阶段。首先,必须创建用于解决最终问题的网格。然后,可以运行求解器以生成最终解决方案。
请注意,由于某些数组具有静态大小,因此如果对用于设置某些参数的 DATA/Par_file 进行了任何更改,必须对程序进行重新编译。
1.更新 DATA/Par_file 及剩余数据文件。
要使用 GPU,必须将 DATA/Par_file 中的 GPU_MODE 参数设置为 .true,这一点至关重要
2.重新构建程序。请注意,由于程序使用静态数组大小,因此 Par_file 中发生任何更改都要求重新构建程序。
make clean
make
3.运行网格化(在本例中,我们将在 4 个 GPU 上运行 4 项 MPI 任务)
mpirun -np 4 bin/xmeshfem3D
4. 运行主程序
mpirun -np 4 bin/xspecfem3D
本节介绍了测试系统性能的过程,并展示典型配置的性能。
tar -xf parfiles.tar
此命令会将数据文件解压缩到 SPECFEM 安装的 DATA 目录中,并更新 STATIONS 和 CMTSOLUTION 文件。我们提供用于 1 个 GPU、2 个 GPU 、4 个 GPU 以及 36 个 CPU 的文件。我们要使用的示例是“global_s362ani_shakemovie”示例的修改版本,它随 SPECFEM3D Globe 分发。减小了问题大小,因此更适用于一个节点。还需要注意的是,可以使用的 MPI 任务的数量存在限制。NPROC 变量将发生更改,具体取决于运行使用 1 个 GPU (1x1)、2 个 GPU (2x1)、4 个 GPU (2x2) 还是 36 个 CPU 核心 (6x6)。
对之下的原始 Par_file 所执行的关键更改如下所示:
本节提供了不同的单节点和多节点系统的预期性能基准测试。