gpt4 book ai didi

linux - sbatch 将不同的作业绑定(bind)到单个核心

转载 作者:太空宇宙 更新时间:2023-11-04 11:46:15 24 4
gpt4 key购买 nike

我们使用 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

一些观察:

  • 无论我直接启 Action 业步骤(如上)、使用 mpirun 还是 srun,问题仍然存在。
  • 看来问题只与作业之间的冲突有关,而不是在同一个作业中:如果我使用 sbatch -n2 -c1 my.sh 发送作业并在脚本文件中使用 mpirun/path/to/busy_loop,似乎每个进程都获得了 100% 的 cpu。然而,如果另一个这样的作业将被发送到同一个节点,它们将共享相同的 2 个核心,并且 4 个进程中的每一个都获得 50% 的 cpu。
  • 我在旧集群上仍然可以使用之前的安装。据我评估,这两个安装的 slurm.conf 似乎是等效的(而且非常简单)。

我没有在网络上找到任何关于类似问题的引用,非常感谢每一个引用或帮助。

最佳答案

slurm.conf 中尝试不同的更改后,解决问题的更改是添加行:
TaskPlugin=任务/亲和性

关于linux - sbatch 将不同的作业绑定(bind)到单个核心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57612364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com