我们正在使用SLURM来管理计算群集上的作业调度,并且我们遇到了内存管理问题。具体来说,我们无法找到如何为特定任务分配内存。
考虑以下设置:
--mem=24GB
现在,假设我们要同时运行两次SLURM作业。然后,我期望(或想要)发生的事情是,当我通过两次调用sbatch runscript.sh
将其排队两次时,两个作业中的一个将在一个节点上运行,另一个将在另一个节点上运行。但是,就目前而言,SLURM会在同一节点上安排两个任务。
我们发现的一个可能原因是它似乎只检查24GB的内存是否可用(即,其他节点没有主动使用),而不是检查它是否是请求/分配的。
这里的问题是:是否可以在SLURM中为每个任务分配/保留内存?
感谢您的帮助!
答案 0 :(得分:2)
为了能够管理内存slurm需要SchedTypeParameters中的参数包含MEMORY。因此,只需将该参数更改为CR_Core_Memory
就足以让Slurm开始管理内存。
如果未设置--mem将不保留内存,只确保节点配置了足够的内存。
更多信息here
答案 1 :(得分:1)
@ CarlesFenoy的答案很好,但要回答
这里的问题是:是否可以分配/保留每个内存 SLURM中的任务?
您要查找的参数为1 in = 2.54 cm
,可与--mem-per-cpu