hpc — получить доступную память под SLURM, используя переполнение стека

Я работаю в среде HPC и использую SLURM для отправки своей работы в очередь. Я пишу свой собственный механизм кэширования памяти и, следовательно, я хочу знать, сколько памяти доступно для каждого узла, чтобы я мог расширить или повторно использовать пространство.

Есть ли способ узнать, сколько памяти доступно.
Устанавливает ли SLURM какие-либо переменные окружения.

1

Решение

Несколько вариантов:

Если контрольные группы настройки, вы можете получить эту информацию, просто читая файл

 /cgroup/memory/slurm/uid_<UISERID>/job_<JOBID>/memory.limit_in_bytes

на каждом узле.

В противном случае, используя SLURM API как предложено @siserte может работать.

Или запросить rlimits с помощью getrlimit (2) также должен работать.

2

Другие решения

В своем вопросе я неправильно указал, что хочу получить доступ к памяти, доступной для каждого узла. Мои задачи MPI сопоставлены с 1 процессором, поэтому мне действительно нужно было получить доступ к памяти, доступной для каждого процессора.

Если вы отправляете работу через sbatch вы можете получить доступ --mem-per-cpu используя переменную окружения SLURM_MEM_PER_CPU, документировано здесь: https://slurm.schedmd.com/sbatch.html

Если требуется память в узле, API SLURM задокументирован в https://slurm.schedmd.com/api.html могут быть использованы, как упомянуто @siserte и @damienfrancois

0

По вопросам рекламы [email protected]