SLURM построен по модульной архитектуре — каждый компонент отвечает за свою часть: планирование, выполнение, логирование и учёт ресурсов.
📦 Основные компоненты SLURM:
Компонент | Назначение |
---|---|
slurmctld | Контроллер задач: главный процесс, отвечает за планирование, принятие задач, распределение ресурсов. |
slurmd | Демон вычислительного узла: управляет задачами на конкретном узле (запуск, контроль, завершение). |
slurmdbd (опционально) | Демон учёта: сохраняет статистику и информацию о задачах в базе данных. |
slurm.conf | Главный конфигурационный файл SLURM, определяет кластеры, partition’ы, правила доступа и политики. |
munge | Сервис авторизации: обеспечивает безопасный обмен сообщениями между компонентами. |
job_submit plugins | Плагины для валидации или модификации заданий перед запуском. |
CLI-инструменты: sbatch , srun , scancel , squeue | Интерфейс взаимодействия пользователя с системой SLURM. |
🔄 Как взаимодействуют эти компоненты (упрощённо):
🧩 Дополнительно:
-
Partitions — логические группы ресурсов, похожи на очереди или пулы узлов (например,
gpu
,short
,long
). -
Nodes — физические или виртуальные машины, описанные в
slurm.conf
. -
Job steps — подзадачи внутри
srun
, выполняющиеся параллельно.