首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在slurm的数组作业中指定每个进程的内存?

如何在slurm的数组作业中指定每个进程的内存?
EN

Stack Overflow用户
提问于 2018-02-13 17:52:12
回答 1查看 897关注 0票数 0

我想用不同的随机种子运行数千个相同的单线程模拟(我将其传递给我的程序)。其中一些已经耗尽内存,但我不知道为什么。我以sbatch --array=0-999%100 --mem=200M run_batch_job的身份调用run_batch_job,其中run_batch_job包含:

代码语言:javascript
复制
#!/bin/env bash
#SBATCH --ntasks=1  # Number of cores
#SBATCH --nodes=1  # All cores on one machine

srun my_program.out $SLURM_ARRAY_TASK_ID

对于单个线程,200M应该超过了足够的内存,但是对于一些模拟,我得到了错误:

代码语言:javascript
复制
slurmstepd: error: Exceeded step memory limit at some point.
slurmstepd: error: Exceeded job memory limit at some point.
srun: error: cluster-cn002: task 0: Out Of Memory
slurmstepd: error: Exceeded job memory limit at some point.

我是给一千个线程中的每一个分配了200M,还是我做错了什么?

编辑:我尝试指定--cpus-per-task=1--mem-per-cpu=200M,而不是指定--ntasks=1--nodes=1--mem=200M,结果相同。

EN

回答 1

Stack Overflow用户

发布于 2018-02-14 03:56:32

您的提交是正确的,但200M可能较低,这取决于您使用的库或您阅读的文件。请求至少2G,因为几乎所有集群的每个核心至少有2 2GB的内存。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48763851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档