我对exit()的简单用法有疑问。
上下文正在群集上运行程序以进行并行计算,因此我们安装了一个Slurm系统来管理和监视所有进程。
问题现在是,当我的程序中调用exit(1)
时,SLURM似乎没有注册,并且CPU保持忙碌,无用地烧毁我分配的CPU时间,尽管程序已经终止了。
所以我的问题是:
与exit()
中的常规return 1
相比,main()
的做法有何不同?
有没有一种简单的方法来修复我的退出信号?
答案 0 :(得分:0)
SLURM的默认行为是允许作业中的进程完成,即使一个进程使用非零退出代码崩溃或退出也是如此。您可以通过在slurm.conf中设置KillOnBadExit=1
,或在-K/--kill-on-bad-exit
中使用srun
来更改此设置。