You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行MPI程序出现'mpirun: Forwarding signal 18 to job'错误求助

解决mpirun: Forwarding signal 18 to job问题的排查步骤

信号含义说明

信号18对应SIGCONT,用于恢复被暂停的进程。mpirun转发该信号,说明你的MPI作业进程或mpirun自身收到了这个信号——由于仅你遇到此问题,优先排查个人专属环境的差异。

具体排查与解决步骤

  • 终端/SSH会话休眠触发(最可能原因)
    你的本地终端或SSH客户端可能因自动锁屏、休眠超时,导致会话先发送SIGSTOP暂停进程,随后又发送SIGCONT恢复,被mpirun捕获并转发:

    • 用screen或tmux启动作业,脱离当前终端会话:
      tmux new-session -s calc_job
      mpirun [你的运行参数]
      # 按Ctrl+B+D detach,后续用tmux attach -t calc_job重新连接
      
    • 或用nohup后台运行,避免终端状态影响:
      nohup mpirun [你的运行参数] > calc.log 2>&1 &
      
    • 调整SSH客户端KeepAlive设置,在本地~/.ssh/config中添加:
      ServerAliveInterval 60
      ServerAliveCountMax 5
      
      防止SSH会话超时断开。
  • 个人账号资源限制差异
    即使bashrc配置一致,个人账号可能存在额外资源限制:

    • 运行ulimit -a,对比同事的输出,重点检查cpu time、max user processes、virtual memory等限制是否不同。
    • 若使用集群调度系统(如Slurm/PBS),查看作业调度日志,确认是否因队列资源不足被系统暂停后恢复。
  • MPI信号转发配置调整
    尝试禁用OpenMPI的信号转发,验证是否消除提示:

    mpirun --disable-signal-forwarding [你的运行参数]
    

    注意:禁用转发可能掩盖其他潜在问题,仅用于测试定位。

  • 系统日志与环境变量排查

    • 查看计算节点的系统日志(如/var/log/syslog或/var/log/messages),在错误出现的时间点附近查找进程暂停、资源告警等记录。
    • 对比与同事的依赖组件相关环境变量:
      env | grep -E "(MPI|TRILINOS|BOOST|LAPACK)"
      
      同时检查module list输出,确保组件加载顺序、版本完全一致。

内容的提问来源于stack exchange,提问作者Antonella Longo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 00:45:14