使用C ++获取SLURM下的可用内存

时间:2018-03-23 02:36:19

标签: c++ hpc slurm supercomputers

我在HPC环境中工作,并且我使用SLURM将我的作业提交到队列中。我正在编写自己的内存缓存机制,因此我想知道每个节点有多少可用内存,以便我可以扩展或重用空间。

有没有办法知道有多少内存可用。 SLURM是否设置了任何环境变量。

2 个答案:

答案 0 :(得分:2)

有几个选择:

如果设置了 cgroups ,您只需阅读文件

即可获得该信息
<div contenteditable="true" id="myDiv">
Hello, this<var id="myVar"> is a test</var> of the editor
</div>

在每个节点上。

否则,使用 SLURM API 作为@siserte建议可以正常工作。

使用getrlimit(2)查询 rlimits 也应该有用。

答案 1 :(得分:0)

在我的问题中,我错误地说我想访问每个节点可用的内存。我的MPI任务映射到1个cpu,所以我实际上需要访问每个cpu可用的内存。

如果您通过sbatch提交工作,则可以使用环境变量--mem-per-cpu访问SLURM_MEM_PER_CPU,此处记录在案:https://slurm.schedmd.com/sbatch.html

如果节点中的内存可用,则可以使用https://slurm.schedmd.com/api.html中记录的SLURM api,如@siserte和@damienfrancois所述