【发布时间】:2016-04-28 22:33:14
【问题描述】:
我正在寻找一种将 sacct 提供的工作信息自动保存到某个文件的方法。到目前为止,我已经在我的作业批处理脚本中包含了一个 sacct 调用,但是状态始终是“RUNNING”。
有没有办法在工作结束/死亡后自动调用 sacct ?
我唯一想到的就是提交第二份工作,这取决于第一份工作,然后调用 sacct,但这显然不是一个好选择。
【问题讨论】:
-
相反,运行依赖于第一个作业的第二个作业(例如,
--dependency=afterany:firstjobid)似乎是的方法当您无权访问 Slurm 日志或配置文件时。你有什么特别的原因要避免这种方法吗? -
我看到了两个问题: 1. 集群管理员强烈反对提交对调度程序没有任何作用的作业(本着同样的精神,他们只提供缓存版本的 squeue,只更新每 30 秒) 2. 运行我的作业阵列后,我的公平份额非常低,因此我无法确定第二个作业是否在 sacct 提供的信息被清除之前正在运行(这里的队列可能很长)。
-
好的,我明白了。
at是集群节点上的一个选项吗?虽然我完全忘记了如何使用 Slurm 执行此操作,但如果您可以在节点上获得交互式登录,请检查/usr/lib/cron/at.allow(可能只是/etc/cron.allow)和/usr/lib/cron/at.deny来确定。我不会指望它——因为 Slurm 有点消除了对at/batch的需求。但是如果at出于某种原因在节点上被允许,您可以在集群作业本身已经终止之后的某个指定时间间隔内运行sacct命令。 -
您是否得到了除状态以外的字段的奇怪/错误值?否则,如果
sacct命令作为提交脚本的最后一个运行,您可能会简单地忽略状态字段
标签: slurm