Я использую Slurm 19.05.2 только с облачными узлами. Я указал
SelectType = select/cons_tres
SelectTypeParameters = CR_CORE_MEMORY,CR_CORE_DEFAULT_DIST_BLOCK
Чтобы убедиться, что узел полностью используется перед выделением второго узла.
Кажется, он хорошо работает с заданиями, которые имеют много задач. Если у меня есть 8 узлов, каждый из которых имеет 16 ядер, и я отправляю задание с 8 задачами, а для каждой задачи требуется 2 ядра, это будет запланировано на один узел. Например, скрипт:
#!/bin/bash
#
#SBATCH --job-name=batch
#SBATCH --output=o_batch.%A.%a.txt
#
#SBATCH --ntasks=8
#SBATCH --time=10:00
#SBATCH --cpus-per-task 2
#SBATCH --mem-per-cpu=100
srun hostname
будет выводить
node-010000
node-010000
node-010000
node-010000
node-010000
node-010000
node-010000
node-010000
Если я укажу массив заданий с --array=1-8
(--ntasks=1
), все задания массива будут запланированы надругой узел (даже если один узел может соответствовать всем требованиям задания)
#!/bin/bash
#
#SBATCH --job-name=array
#SBATCH --output=array.%A.%a.txt
#
#SBATCH --ntasks=1
#SBATCH --time=10:00
#SBATCH --mem-per-cpu=100
#SBATCH --array=1-8
srun hostname
будет выводить
node-010000
node-010001
node-010002
node-010003
node-010004
node-010005
node-010006
node-010007
Есть ли способ настроить slurm для работы с массивами так же, как с задачей?