【问题标题】:Reserve memory per task in SLURM在 SLURM 中为每个任务保留内存
【发布时间】:2017-09-28 23:19:40
【问题描述】:

我们正在使用 SLURM 管理计算集群上的作业调度,但我们遇到了内存管理问题。具体来说,我们不知道如何为特定任务分配内存。

考虑以下设置:

  • 每个节点都有 32GB 内存
  • 我们有一个设置 --mem=24GB 的 SLURM 作业

现在,假设我们要同时运行该 SLURM 作业两次。然后我期望(或希望)发生的是,当我通过两次调用sbatch runscript.sh 将其排队两次时,两个作业之一将在一个节点上运行,另一个将在另一个节点上运行。然而,就目前而言,SLURM 将两个任务安排在同一个节点上。

我们发现的一个可能原因是它似乎只检查 24GB 内存是否可用(即其他节点没有主动使用),而不是检查它是否可用请求/分配。

这里的问题是:是否可以在 SLURM 中为每个任务分配/保留内存?

感谢您的帮助!

【问题讨论】:

  • SelectTypeParams 在 slurm.conf 中的值是多少?
  • 感谢您的评论! SelectType=select/cons_resSelectTypeParameters=CR_Core

标签: slurm


【解决方案1】:

为了能够管理内存 slurm 需要 SchedTypeParameters 中的参数包含 MEMORY。因此,只需将该参数更改为 CR_Core_Memory 就足以让 Slurm 开始管理内存。

如果未设置 --mem 将不会保留内存,仅确保节点配置了足够的内存。

更多信息here

【讨论】:

  • 谢谢,卡尔斯!我感谢您的帮助!将该参数设置为CR_Core_Memory 确实会使内存(与内核一起)成为可消耗的资源。
【解决方案2】:

@CarlesFenoy 的回答很好,但是要回答

这里的问题是:是否可以为每个人分配/保留内存 SLURM 中的任务?

您要查找的参数是--mem-per-cpu,与--cpus-per-tasks结合使用

【讨论】:

  • 感谢您的评论;一旦您指定内存是可消耗资源,这确实是分配内存的方法。谢谢!我将 Carles 的答案标记为已接受的答案,但非常感谢您的帮助!
猜你喜欢
  • 2020-02-21
  • 1970-01-01
  • 2020-12-13
  • 1970-01-01
  • 2013-02-18
  • 2019-01-01
  • 1970-01-01
  • 2020-11-23
  • 1970-01-01
相关资源
最近更新 更多