partition
— это логическая группа вычислительных узлов с общими правилами запуска задач: лимитами, приоритетами, доступом и пр.
📦 Для чего нужен partition
:
-
Разделение ресурсов по типам (например:
gpu
,cpu
,long
,short
) -
Управление политиками доступа (разрешить доступ только определённым пользователям/группам)
-
Установка ограничений: макс. время задачи, макс. кол-во узлов и т.п.
-
Создание приоритетов и SLA: у каждой partition может быть свой
priority_weight
🔧 Пример из slurm.conf
:
PartitionName=gpu Nodes=gpu[01-10] Default=NO MaxTime=12:00:00 State=UP PartitionName=short Nodes=cpu[01-20] Default=YES MaxTime=01:00:00 State=UP PartitionName=long Nodes=cpu[21-40] Default=NO MaxTime=7-00:00:00 State=UP
🏁 Как пользователь указывает partition:
sbatch --partition=gpu job.sh
Если не указать — задача попадёт в partition с Default=YES
.
💡 Аналогии:
SLURM Term | Аналогия |
---|---|
partition | очередь печати / очередь задач |
node | сервер / исполнитель задачи |
job | задание в очереди |
🧩 Как SLURM выбирает partition
:
-
Указана явно (
--partition=gpu
) → только она используется -
Не указана → берётся partition с
Default=YES
-
Проверяется:
-
💡 Пользователь имеет доступ?
-
⏳
--time
меньшеMaxTime
? -
💻 Есть доступные узлы?
-
-
Если условия не подходят — задача отклоняется или висит в ожидании (
PD
)
📈 Что влияет на приоритет задач:
SLURM использует модель multifactor priority, которая может учитывать:
-
Partition
PriorityWeight
-
Время в очереди (age)
-
Fairshare (справедливость)
-
Кол-во ранее выполненных задач
-
Размер запрашиваемых ресурсов