如何使用 SLURM 停止计算节点?
Posted
技术标签:
【中文标题】如何使用 SLURM 停止计算节点?【英文标题】:How to stop a compute node with SLURM? 【发布时间】:2021-04-09 07:38:49 【问题描述】:我在 AWS 上使用 SLURM 作为 AWS 并行集群的一部分来管理作业。我有两个问题:
使用scancel *jobid*
取消作业时,关联节点不会停止。我怎样才能做到这一点?
启动时,我犯了一个错误,没有使我的脚本可执行,所以sbatch *script.sh*
工作但计算节点什么也没做。我怎样才能识别这种行为并妥善处理?是否适合例如例如,在一段时间后停止空闲节点并将其输出到日志中?我怎样才能做到这一点?
【问题讨论】:
第二个问题 - 工作还在排队吗?或者它是否“完成”并且队列中没有更多工作?无论哪种情况,您都应该从 Slurm 获取有关进程发生了什么的日志,如果作业退出,则使用sacct
;如果作业正在运行,则使用 slist
。
【参考方案1】:
在文档中查看此页面:https://docs.aws.amazon.com/parallelcluster/latest/ug/autoscaling.html
底线是,在超过 scaledown_idletime(默认设置为 10 分钟)的时间段内没有作业的实例将被集群自动缩减(终止)。
如果 10 分钟太长,您可以在构建集群时调整配置文件中的设置。只需首先考虑您的工作量,因为您不希望作业之间的小延迟导致您在等待节点死亡并在不久之后再次创建时导致大量流失,因此需要 10 分钟。
【讨论】:
以上是关于如何使用 SLURM 停止计算节点?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 SLURM 中的节点列表向任何 [子集] 节点提交作业?
如何在多个 GPU 节点上获取分配给 SLURM 作业的 GPU ID?
如何跨 Slurm 集群上的多个节点运行 MPI Python 脚本?错误:警告:无法在 2 个节点上运行 1 个进程,将 nnodes 设置为 1