国产超算平台CESM2.1.3部署全攻略从环境配置到案例调试1. 环境准备与依赖检查在国产超算平台上部署CESMCommunity Earth System Model需要预先配置完整的软件栈。不同于普通服务器环境超算平台通常采用模块化管理系统这要求我们精确掌握各组件版本兼容性。核心依赖清单编译器套件Intel Parallel Studio建议2017或更新版本MPI库Intel MPI或MPICH需与编译器匹配科学计算库NetCDF 4.4.1需包含Fortran接口PnetCDF 1.12.1HDF5 1.8.20辅助工具Git 1.8Subversion 1.8CMake 3.20典型环境配置命令# 加载基础环境模块 module purge module load compiler/intel/2017.5.239 module load mpi/hpcx/2.7.4/intel-2017.5.239 module load mathlib/netcdf/intel/4.4.1 module load mathlib/pnetcdf/intel/1.12.1注意不同超算中心的模块命名可能有所差异建议通过module avail命令查看可用版本2. 代码获取与组件管理CESM2.1.3采用Git管理主代码库通过manage_externals工具管理子模块。在特殊网络环境下可能遇到连接问题需要调整Git配置# 禁用SSL验证仅限内网环境 git config --global http.sslVerify false git config --global url.https://.insteadOf git:// # 克隆主仓库 git clone -b release-cesm2.1.3 https://github.com/ESCOMP/CESM.git my_cesm_sandbox cd my_cesm_sandbox # 检查外部组件可能需要多次尝试 ./manage_externals/checkout_externals常见问题解决方案错误类型表现特征解决方法SSL证书错误fatal: unable to access...SSL certificate problem临时关闭SSL验证网络中断Encountered end of file分多次执行checkout权限问题Permission denied (publickey)改用HTTPS协议克隆3. 机器配置文件深度定制CESM通过XML文件定义平台特性需在$HOME/.cime/目录创建三个核心文件3.1 config_machines.xml?xml version1.0? config_machines version2.0 machine MACHYOUR_SYSTEM DESCYour HPC System Description/DESC NODENAME_REGEXlogin-node-pattern/NODENAME_REGEX OSLINUX/OS COMPILERSintel/COMPILERS MPILIBSintelmpi/MPILIBS CIME_OUTPUT_ROOT${HOME}/cesm_output/CIME_OUTPUT_ROOT DIN_LOC_ROOT${HOME}/cesm_inputdata/DIN_LOC_ROOT GMAKE_J8/GMAKE_J BATCH_SYSTEMnone/BATCH_SYSTEM mpirun mpilibdefault executablempirun/executable arguments arg namentasks-np {{ total_tasks }}/arg /arguments /mpirun /machine /config_machines3.2 config_compilers.xml关键编译参数配置示例compiler COMPILERintel MACHYOUR_SYSTEM FFLAGS base-qno-opt-dynamic-align -convert big_endian -assume byterecl/base append DEBUGFALSE-O2 -debug minimal/append /FFLAGS MPIFCmpif90/MPIFC SLIBS append MPILIBintelmpi-mklcluster/append /SLIBS /compiler3.3 配置文件验证执行格式检查xmllint --noout --schema $CIMEROOT/config/xml_schemas/config_machines.xsd $HOME/.cime/config_machines.xml xmllint --noout --schema $CIMEROOT/config/xml_schemas/config_compilers_v2.xsd $HOME/.cime/config_compilers.xml4. 案例创建与调试实战4.1 基础案例创建./create_newcase \ --case FHIST_f19 \ --res f19_f19 \ --compset FHIST \ --compiler intel \ --mach YOUR_SYSTEM \ --run-unsupported常见错误处理节点识别失败ERROR: Could not find machine match for login04解决方案检查NODENAME_REGEX是否匹配实际节点名XML格式错误ParseError: mismatched tag解决方案使用xmllint验证XML文件完整性模块加载问题ModuleNotFoundError: mathlib/netcdf/4.4.1解决方案确认模块路径或改用绝对路径4.2 高级配置技巧性能优化参数# 在env_build.xml中调整 ./xmlchange --file env_build.xml --id BUILD_THREADED --val TRUE ./xmlchange --file env_run.xml --id NTASKS --val 128 ./xmlchange --file env_run.xml --id NTHRDS --val 2输入数据准备# 检查缺失文件 ./check_input_data --download # 手动下载路径示例 wget -P $DIN_LOC_ROOT/atm/cam/sst/ \ https://svn-ccsm-inputdata.cgd.ucar.edu/trunk/atm/cam/sst/sst_HadOIBl_bc_1.9x2.5_1850_2017_c180507.nc5. 典型问题排查指南5.1 编译阶段问题Intel编译器警告处理# 在config_compilers.xml中添加 FFLAGS append-warn noerrors/append /FFLAGS依赖库冲突解决# 查看实际链接库 ldd cesm.exe | grep netcdf # 强制指定库路径 SLIBS base-L/path/to/netcdf/lib -lnetcdf -lnetcdff/base /SLIBS5.2 运行阶段问题MPI任务分配错误ERROR: MPI_ABORT invoked: Not enough slots available解决方案./xmlchange --file env_run.xml --id MAX_MPITASKS_PER_NODE --val 24内存不足处理# 调整栈大小 environment_variables env nameOMP_STACKSIZE512M/env /environment_variables6. 效能分析与优化建议任务分解策略对比组件默认任务数优化任务数线程数ATM-2NCPU/22LND-2NCPU/41ICE-2NCPU/41OCN-211典型性能瓶颈I/O延迟启用NetCDF压缩./xmlchange --file env_run.xml --id PIO_TYPENAME --val pnetcdf负载不均衡调整组件布局./xmlchange --file env_run.xml --id ROOTPE_ATM --val 0 ./xmlchange --file env_run.xml --id ROOTPE_OCN --val 64通信开销优化MPI参数environment_variables env nameI_MPI_ADJUST_ALLREDUCE5/env /environment_variables
在国产超算上从零部署CESM2.1.3:一个地球系统模式小白的踩坑实录(附完整配置文件)
发布时间:2026/6/8 4:28:05
国产超算平台CESM2.1.3部署全攻略从环境配置到案例调试1. 环境准备与依赖检查在国产超算平台上部署CESMCommunity Earth System Model需要预先配置完整的软件栈。不同于普通服务器环境超算平台通常采用模块化管理系统这要求我们精确掌握各组件版本兼容性。核心依赖清单编译器套件Intel Parallel Studio建议2017或更新版本MPI库Intel MPI或MPICH需与编译器匹配科学计算库NetCDF 4.4.1需包含Fortran接口PnetCDF 1.12.1HDF5 1.8.20辅助工具Git 1.8Subversion 1.8CMake 3.20典型环境配置命令# 加载基础环境模块 module purge module load compiler/intel/2017.5.239 module load mpi/hpcx/2.7.4/intel-2017.5.239 module load mathlib/netcdf/intel/4.4.1 module load mathlib/pnetcdf/intel/1.12.1注意不同超算中心的模块命名可能有所差异建议通过module avail命令查看可用版本2. 代码获取与组件管理CESM2.1.3采用Git管理主代码库通过manage_externals工具管理子模块。在特殊网络环境下可能遇到连接问题需要调整Git配置# 禁用SSL验证仅限内网环境 git config --global http.sslVerify false git config --global url.https://.insteadOf git:// # 克隆主仓库 git clone -b release-cesm2.1.3 https://github.com/ESCOMP/CESM.git my_cesm_sandbox cd my_cesm_sandbox # 检查外部组件可能需要多次尝试 ./manage_externals/checkout_externals常见问题解决方案错误类型表现特征解决方法SSL证书错误fatal: unable to access...SSL certificate problem临时关闭SSL验证网络中断Encountered end of file分多次执行checkout权限问题Permission denied (publickey)改用HTTPS协议克隆3. 机器配置文件深度定制CESM通过XML文件定义平台特性需在$HOME/.cime/目录创建三个核心文件3.1 config_machines.xml?xml version1.0? config_machines version2.0 machine MACHYOUR_SYSTEM DESCYour HPC System Description/DESC NODENAME_REGEXlogin-node-pattern/NODENAME_REGEX OSLINUX/OS COMPILERSintel/COMPILERS MPILIBSintelmpi/MPILIBS CIME_OUTPUT_ROOT${HOME}/cesm_output/CIME_OUTPUT_ROOT DIN_LOC_ROOT${HOME}/cesm_inputdata/DIN_LOC_ROOT GMAKE_J8/GMAKE_J BATCH_SYSTEMnone/BATCH_SYSTEM mpirun mpilibdefault executablempirun/executable arguments arg namentasks-np {{ total_tasks }}/arg /arguments /mpirun /machine /config_machines3.2 config_compilers.xml关键编译参数配置示例compiler COMPILERintel MACHYOUR_SYSTEM FFLAGS base-qno-opt-dynamic-align -convert big_endian -assume byterecl/base append DEBUGFALSE-O2 -debug minimal/append /FFLAGS MPIFCmpif90/MPIFC SLIBS append MPILIBintelmpi-mklcluster/append /SLIBS /compiler3.3 配置文件验证执行格式检查xmllint --noout --schema $CIMEROOT/config/xml_schemas/config_machines.xsd $HOME/.cime/config_machines.xml xmllint --noout --schema $CIMEROOT/config/xml_schemas/config_compilers_v2.xsd $HOME/.cime/config_compilers.xml4. 案例创建与调试实战4.1 基础案例创建./create_newcase \ --case FHIST_f19 \ --res f19_f19 \ --compset FHIST \ --compiler intel \ --mach YOUR_SYSTEM \ --run-unsupported常见错误处理节点识别失败ERROR: Could not find machine match for login04解决方案检查NODENAME_REGEX是否匹配实际节点名XML格式错误ParseError: mismatched tag解决方案使用xmllint验证XML文件完整性模块加载问题ModuleNotFoundError: mathlib/netcdf/4.4.1解决方案确认模块路径或改用绝对路径4.2 高级配置技巧性能优化参数# 在env_build.xml中调整 ./xmlchange --file env_build.xml --id BUILD_THREADED --val TRUE ./xmlchange --file env_run.xml --id NTASKS --val 128 ./xmlchange --file env_run.xml --id NTHRDS --val 2输入数据准备# 检查缺失文件 ./check_input_data --download # 手动下载路径示例 wget -P $DIN_LOC_ROOT/atm/cam/sst/ \ https://svn-ccsm-inputdata.cgd.ucar.edu/trunk/atm/cam/sst/sst_HadOIBl_bc_1.9x2.5_1850_2017_c180507.nc5. 典型问题排查指南5.1 编译阶段问题Intel编译器警告处理# 在config_compilers.xml中添加 FFLAGS append-warn noerrors/append /FFLAGS依赖库冲突解决# 查看实际链接库 ldd cesm.exe | grep netcdf # 强制指定库路径 SLIBS base-L/path/to/netcdf/lib -lnetcdf -lnetcdff/base /SLIBS5.2 运行阶段问题MPI任务分配错误ERROR: MPI_ABORT invoked: Not enough slots available解决方案./xmlchange --file env_run.xml --id MAX_MPITASKS_PER_NODE --val 24内存不足处理# 调整栈大小 environment_variables env nameOMP_STACKSIZE512M/env /environment_variables6. 效能分析与优化建议任务分解策略对比组件默认任务数优化任务数线程数ATM-2NCPU/22LND-2NCPU/41ICE-2NCPU/41OCN-211典型性能瓶颈I/O延迟启用NetCDF压缩./xmlchange --file env_run.xml --id PIO_TYPENAME --val pnetcdf负载不均衡调整组件布局./xmlchange --file env_run.xml --id ROOTPE_ATM --val 0 ./xmlchange --file env_run.xml --id ROOTPE_OCN --val 64通信开销优化MPI参数environment_variables env nameI_MPI_ADJUST_ALLREDUCE5/env /environment_variables