随机化 Slurm 节点分配

随机化 Slurm 节点分配

有人成功随机化了 Slurm 节点分配吗?我们有一个由 12 个节点组成的小型集群,可供 1-8 人同时使用,处理各种大小/长度的作业。在测试我们新的 Slurm 设置时,如果没有其他用户同时处理交互式作业和批处理作业,作业总是转到分区中的第一个节点。有没有办法随机化这个调度?

似乎根据用户的时间线,他们可以始终获得相同的节点,这可能会掩盖硬件/配置中本来可见的问题。我们的节点始终是独占的,因此我们只考虑随机化节点级调度...

答案1

查看 slurm.conf 中的 Weight 设置

节点在调度方面的优先级。在所有其他条件相同的情况下,作业将被分配满足其要求的权重最低的节点。例如,可以将一组异构节点放入单个分区,以提高系统利用率、响应能力和能力。如果两者都能满足作业的要求,则最好分配较小的内存节点,而不是较大的内存节点。权重的单位是任意的,但应为具有更多处理器、内存、磁盘空间、更高处理器速度等的节点分配更大的权重。请注意,如果使用权重最低的节点无法满足作业分配请求,则将权重次低的节点集添加到考虑使用的节点集中(根据需要重复以获得更高的权重值)。如果您绝对想尽量减少分配给作业的较高权重节点的数量(以更高的调度开销为代价),请为每个节点指定一个不同的权重值,它们将被单独添加到考虑进行调度的节点池中。默认值为 1。

答案2

您可以将“LLN=YES”添加到分区。

LLN 将资源分配给负载最少的节点上的作业(基于空闲 CPU 的数量)。

答案3

我认为,如果不修改代码或提供自己的插件,就不可能随机分配节点。有很多方法可以影响给定作业将选择哪些节点,但没有一种方法是随机的。正如@Tux_DEV_NULL 所说,您可以使用权重来选择节点子集,但除非您随机更改权重,否则如果整个集群处于空闲状态,您仍然会一次又一次地选择同一个节点。我相信节点正常运行时间是最终的决胜因素。

如果您担心缺少配置错误或损坏的节点,则应使用节点健康检查脚本,该脚本使用 slurm.conf 中的 HealthCheckProgram 参数。您可以在此处找到一个好用的脚本: https://github.com/mej/nhc

相关内容