在SLURM中为每个任务保留内存

时间:2017-09-27 14:23:38

标签: slurm

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

考虑以下设置:

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

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

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

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

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

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

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

更多信息here

答案 1 :(得分:1)

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

  

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

您要查找的参数为1 in = 2.54 cm,可与--mem-per-cpu

组合使用