sbatch 将不同的作业绑定到单个核心

sbatch binds different jobs to a single core

我们使用 Slurm 资源管理器将作业发送到集群。最近,我们将 Slurm 版本从 15 升级到 18。

升级后遇到以下问题:
因此,我发送了需要单核并且应该利用 ~100% cpu 的作业。 然而,当这些作业到达同一个计算节点时,它们似乎大致共享一个核心。即,当第一个作业到达时,它获得 100% cpu,当第二个作业到达时,它们都获得 50% 等等。有时在同一个节点上有 20 个作业(它有 24 个物理核心)并且每个都得到 ~ 5% cpu.

重现问题的设置非常简单:
可执行文件是一个简单的 C 繁忙循环,已验证在本地 运行 时消耗 ~100% cpu。
我发送的脚本文件是:

> cat my.sh
#/bin/bash
/path/to/busy_loop

sbatch 命令为:

sbatch -n1 -c1 my.sh

一些观察:

我没有在网上找到任何关于类似问题的参考资料,我们将不胜感激每一个参考资料或帮助。

slurm.conf 中尝试不同的更改后,解决问题的更改是添加行:
TaskPlugin=task/affinity