通过crontab运行使用Intel MPI的WRF Slurm作业时出现报错
故障排查与修复方案
该Intel MPI报错(bstrap_proxy 退出码65280)由cron非登录运行环境缺少必要配置导致,仅同步PATH变量无法覆盖MPI、Slurm的运行依赖,可按以下步骤处理:
1. 补全全量运行环境
cron默认加载极简环境,需在你的作业执行脚本开头补全环境配置:
- 显式source当前用户的shell配置文件(以bash为例):
# 加载交互式终端的所有默认环境 source /etc/profile source ~/.bashrc source ~/.bash_profile - 若集群使用module管理依赖,需在脚本中显式加载所有WRF依赖模块,示例:
module purge module load intel/2021.4.0 intelmpi/2021.4.0 netcdf/4.8.1 slurm/23.02 # 替换为你交互式终端运行WRF前加载的所有模块
2. 显式指定MPI bootstrap机制
非登录环境下Intel MPI默认bootstrap检测会失败,需在mpiexec命令中显式声明:
- 若集群配置了计算节点间普通用户ssh免密,添加ssh bootstrap参数:
mpiexec -bootstrap ssh -n 4 ./real.exe mpiexec -bootstrap ssh -n 4 ./wrf.exe - 若仅允许通过Slurm调度跨节点进程,指定slurm作为bootstrap:
mpiexec -bootstrap slurm -n 4 ./wrf.exe
3. 对齐资源限制配置
cron默认的资源上限(进程数、打开文件数、内存限制)远低于交互式终端,需在脚本开头对齐配置:
ulimit -u unlimited ulimit -n 65535 ulimit -s unlimited # 可在交互式终端执行ulimit -a查看所有配置,和cron环境输出做对比补全
4. 快速验证环境差异
分别在交互式终端和cron任务中执行env | sort > env_terminal.log、env | sort > env_cron.log,对比两个日志的差异,将终端特有的和MPI、Slurm、WRF相关的环境变量直接写入作业脚本即可完成对齐。
内容的提问来源于stack exchange,提问作者raj
相关产品推荐
相关产品推荐

