计算环境诊断与依赖准备
说明 CESM 对编译、MPI、NetCDF 与批处理环境的基本要求,并介绍 CESM.run Toolkit 的诊断命令。
计算环境诊断与依赖准备
CESM 的编译与运行依赖具体计算平台。对于尚未完成 CIME 移植的新机器,需要先确认编译器、MPI、构建工具、NetCDF 以及批处理系统是否可用。CESM.run Toolkit 的定位是对这些前置条件进行自动化检查和记录,帮助用户在进入 CIME 工作流前形成可复核的环境基线。
1. 官方环境要求概览
CIME 官方移植文档指出,新平台至少应具备以下条件:
- 可工作的 MPI 环境;如果只计划单核运行,可使用 CIME 的
mpi-serial。 - 构建工具,例如
gmake和cmake。 - NetCDF 4.3 或更新版本,并且应使用与 CIME 构建一致的编译器构建。
- 如使用并行 I/O,可按平台需要准备 PnetCDF。
在正式移植 CESM 前,建议先确认一个基础 MPI 程序能够完成编译和运行。若 MPI 示例都无法运行,后续 CESM 构建和提交通常也会失败。
2. 使用 CESM.run Toolkit 执行环境诊断
发布版二进制文件下载并授权后,可执行:
./cesmrun-linux-x86_64 doctor
如果已将二进制文件安装到 PATH 并重命名为 cesmrun,可使用:
cesmrun doctor
该命令用于检查系统工具、module 环境、NetCDF-C、NetCDF-Fortran、MPI、编译器、CMake、Perl 模块、BLAS/LAPACK 以及 Slurm、PBS、LSF 等批处理系统。诊断结果会导出到:
$HOME/.cime/cesm.env.sh
后续命令会优先复用该文件,以减少重复探测造成的差异。
3. 复用诊断环境
在同一个登录节点或构建 shell 中,可手动加载诊断结果:
source $HOME/.cime/cesm.env.sh
如果平台 module 系统行为异常,或需要排除 module fallback 的影响,可执行:
CESMRUN_DISABLE_MODULE=1 cesmrun doctor
4. 依赖链安装辅助
在缺少 NetCDF、HDF5 或 MPI 等依赖时,可先查看安装计划:
cesmrun install --prefix $HOME/opt/cesm-libs --dry-run
确认后执行实际构建:
cesmrun install --prefix $HOME/opt/cesm-libs --jobs 8
对于网络受限环境,可使用本地包目录:
cesmrun install --prefix $HOME/opt/cesm-libs --package-dir /path/to/packages
或通过环境变量指定:
CESMRUN_PACKAGE_DIR=/path/to/packages cesmrun install --prefix $HOME/opt/cesm-libs
5. 学习提示
环境诊断通过并不等价于科学模拟已经被验证。它只说明当前软件栈具备进入 CESM/CIME 工作流的基本条件。对于生产运行,还应继续完成 case 构建、短时试运行、重启一致性检查和必要的科学验证。
官方参考
- CIME Porting Documentation: https://esmci.github.io/cime/versions/master/html/users_guide/porting-cime.html
- CESM Documentation & Tools: https://docs.cesm.ucar.edu/