slurmstepd:错误:在某些时候超出了步骤内存限制

时间:2017-09-01 05:23:00

标签: cluster-computing slurm

我在Bluehive中运行代码。代码有一些参数N.如果N很小,那么代码运行得很好。但是对于略大的N(例如N = 10),代码运行了几个小时,最后我收到以下错误消息:

slurmstepd: error: Exceeded step memory limit at some point.

我提交的批处理文件包含以下代码:

#!/bin/bash
#SBATCH -o log.%a.txt -t 3-01:01:00
#SBATCH --mem-per-cpu=1gb
#SBATCH -c 4
#SBATCH --gres=gpu:1 
#SBATCH -J Ankani
#SBATCH -a 1-2

python run.py $SLURM_ARRAY_TASK_ID

我为代码分配了足够的内存。但仍然得到错误

"slurmstepd: error: Exceeded step memory limit at some point."

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

但是,我会注意到此错误消息中“步骤内存限制”描述的内存限制不一定与您的进程的RSS相关。此限制由cgroup插件和内存cgroups

提供并强制执行
  

不仅可以跟踪作业中的任务RSS,还可以跟踪文件缓存,mmap页面,   如果我不得不猜你是因为页面缓存而达到了内存限制。   在这种情况下,您可能只能忽略此错误   在这里达到极限可能只是触发了内存回收哪个   释放缓存页面(这不应该是致命错误)。

     

如果您想避免错误,那么您只需要写出数据   不希望它被缓存,那么你可以尝试使用posix_fadvise(2)   使用POSIX_FADV_DONTNEED提示您不是VM   打算再读你正在写的页面。

这是the source of this text