必看
新平台移植与 CESM.run 配置生成
说明 CIME 新平台移植要点,并介绍 CESM.run Toolkit 对机器配置生成的辅助作用。
CESM.run2026-06-24cesm-required/08_porting_cesmrun_config.md
新平台移植与 CESM.run 配置生成
当 CESM 需要运行在一个尚未被官方支持或尚未完成本地适配的集群上时,必须先完成 CIME 机器配置。机器配置决定了编译器、MPI、NetCDF、输入数据目录、运行目录、批处理系统和每节点任务布局等关键信息。
1. CIME 官方移植思路
CIME 官方文档给出两类机器定义方式:
- 在
$CIMEROOT/config/$model/machines/config_machines.xml中添加机器配置。 - 在
$HOME/.cime/下放置用户自定义配置文件,例如config_machines.xml与config_batch.xml。
如果只是单用户或课题组本地使用,$HOME/.cime/ 更便于维护;如果需要支持大量用户,则应考虑将机器配置纳入模型仓库或平台统一配置。
2. 机器配置的核心文件
CESM2/CIME 常见机器配置包括:
config_machines.xml
config_compilers.xml
config_batch.xml
其中:
config_machines.xml描述机器名称、操作系统、编译环境、输入数据目录、运行目录、每节点任务数等。config_compilers.xml描述不同编译器下的编译、链接和库路径设置。config_batch.xml描述 Slurm、PBS、LSF 或其他批处理系统的提交命令和队列参数。
CESM1 的机器配置路径与 CESM2 不同,通常位于:
$CESM1_DIR/scripts/ccsm_utils/Machines/
3. 使用 CESM.run Toolkit 生成 CESM2 配置
建议先完成环境诊断:
cesmrun doctor
然后执行 dry-run:
cesmrun configure-cesm2 --cesm2-dir /path/to/cesm2 --dry-run
确认输出后写入配置:
cesmrun configure-cesm2 --cesm2-dir /path/to/cesm2
该命令会面向 CESM2 的 CIME 机器配置目录生成或更新:
/path/to/cesm2/cime/config/cesm/machines/config_machines.xml
/path/to/cesm2/cime/config/cesm/machines/config_compilers.xml
/path/to/cesm2/cime/config/cesm/machines/config_batch.xml
如果平台暂不使用批处理系统,可指定:
cesmrun configure-cesm2 \
--cesm2-dir /path/to/cesm2 \
--batch-system none \
--max-tasks-per-node 32
4. 使用 CESM.run Toolkit 生成 CESM1 配置
对 CESM1 执行 dry-run:
cesmrun configure-cesm1 --cesm1-dir /path/to/cesm1 --dry-run
确认后写入:
cesmrun configure-cesm1 --cesm1-dir /path/to/cesm1
该命令会面向 CESM1 机器配置目录生成或更新:
/path/to/cesm1/scripts/ccsm_utils/Machines/config_machines.xml
/path/to/cesm1/scripts/ccsm_utils/Machines/config_compilers.xml
已有文件会先生成带时间戳的备份,便于回滚和审查。
5. 移植后的验证
机器配置生成后,不应直接进入长期生产运行。建议按以下顺序验证:
- 使用
create_newcase创建一个小规模或官方推荐测试 case。 - 执行
case.setup,检查生成的.case.run、Macros.cmake与环境摘要。 - 执行
case.build,检查构建日志。 - 执行短时
case.submit,检查cpl.log.*是否正常终止。 - 对生产配置开展重启一致性、吞吐量和科学合理性检查。
6. 学习提示
CESM.run Toolkit 可辅助生成和复核机器配置,但不替代 CIME 官方工作流,也不保证所有科学配置已经通过验证。对于多人共享平台,建议将生成的配置提交给平台管理员或课题组维护者审查,再作为团队默认配置使用。
官方参考
- CIME Porting Documentation: https://esmci.github.io/cime/versions/master/html/users_guide/porting-cime.html
- CESM Documentation & Tools: https://docs.cesm.ucar.edu/