必需及可选依赖库¶
下面说明构建 FrontISTR 所需的库以及用于扩展功能的可选库。各库的安装步骤请参阅相应库的文档。
必需依赖库¶
以下工具和库是构建 FrontISTR 所必需的。
| 库 | 版本要求 | 用途 |
|---|---|---|
| CMake | ≥ 3.13.4 | 构建系统 |
| C/C++/Fortran 编译器 | — | 编译源代码 |
| MPI | — | 并行通信库(OpenMPI、IntelMPI 等) |
可选依赖库¶
以下库均为可选项,可根据所需功能在构建时启用。对应的 CMake 选项请参见使用 CMake 的构建步骤。
| 库 | CMake 选项 | 用途 | 获取地址 |
|---|---|---|---|
| METIS (v4/v5) | WITH_METIS |
基于图划分的域分解 | Karypis Lab |
| MUMPS + ScaLAPACK | WITH_MUMPS |
并行直接法求解器 | MUMPS-Solver.org / Netlib |
| Intel oneAPI MKL | WITH_MKL |
直接法求解器(PARDISO)、BLAS/LAPACK | Intel |
| OpenBLAS / LAPACK | WITH_LAPACK |
数值线性代数(条件数估计) | OpenBLAS.net / Netlib |
| Trilinos ML | WITH_ML |
AMG 预处理 | Trilinos Project |
| REVOCAP_Refiner | WITH_REFINER |
网格细化 | FrontISTR 下载页面 |
| REVOCAP_Coupler | WITH_REVOCAP |
耦合分析 | FrontISTR 下载页面 |
| NetCDF | WITH_NETCDF |
以 Exodus II 格式输出 | Unidata |
| Doxygen | WITH_DOC |
生成 API 文档 | Doxygen.nl |
GPU 构建所需的附加工具¶
FrontISTR 的 GPU 化使用 OpenACC 实现,目前已确认可在采用 NVIDIA HPC SDK 的配置下运行。进行 GPU 构建时,除上述必需库外,还需要以下工具。
| 工具 | 用途 | 获取地址 |
|---|---|---|
NVIDIA HPC SDK (nvc, nvc++, nvfortran) |
编译 OpenACC GPU offload | NVIDIA |
有关 GPU 构建步骤的详细信息(包括不支持库的处理方式),请参见使用 GPU 构建。