【问题标题】:Save slurm job information automatically自动保存 slurm 作业信息
【发布时间】: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


【解决方案1】:

您可以使用JobCompLocslurm.conf 中设置一个文件来存储作业完成数据。 (我们解析该文件以在作业完成电子邮件中发送额外信息,它包括(我认为)您从sacct 获得的所有信息。

【讨论】:

  • 有趣!不幸的是,我似乎无法访问JobCompLoc 文件夹,也无法像在集群上那样修改slurm.conf。应该提到这一点。
猜你喜欢
  • 2018-01-06
  • 2018-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
  • 2018-10-07
  • 1970-01-01
相关资源
最近更新 更多