我在HPC环境中工作,并且我使用SLURM将我的作业提交到队列中。我正在编写自己的内存缓存机制,因此我想知道每个节点有多少可用内存,以便我可以扩展或重用空间。
有没有办法知道有多少内存可用。 SLURM是否设置了任何环境变量。
答案 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所述