MLOps и инструменты
13 просмотров
Slurm
Slurm Workload Manager
Slurm — open-source менеджер задач для HPC-кластеров, управляющий очередями, распределением GPU и планированием multi-node обучения. Стандарт де-факто для GPU-кластеров в исследовательских лабораториях.
Что такое Slurm
Slurm (Simple Linux Utility for Resource Management) — система управления ресурсами кластера. Распределяет GPU, CPU и память между пользователями, управляет очередями задач и обеспечивает fair-share scheduling.
Архитектура
slurmctld (controller) — управляет кластером
├── slurmd (node 1) — 8× A100
├── slurmd (node 2) — 8× A100
├── slurmd (node 3) — 8× H100
└── slurmdbd (database) — учёт ресурсов
Основные команды
# Запуск задачи
sbatch train.sh
# Интерактивная сессия с 2 GPU
srun --gres=gpu:2 --time=4:00:00 --pty bash
# Просмотр очереди
squeue -u $USER
# Статус кластера (свободные GPU)
sinfo -o "%N %G %C %m %t"
# Отмена задачи
scancel <job_id>
Пример скрипта обучения
#!/bin/bash
#SBATCH --job-name=llama-finetune
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=1
#SBATCH --gres=gpu:8
#SBATCH --cpus-per-task=96
#SBATCH --mem=512G
#SBATCH --time=48:00:00
#SBATCH --partition=gpu
# Multi-node distributed training
srun torchrun \
--nnodes=$SLURM_JOB_NUM_NODES \
--nproc-per-node=8 \
--rdzv-backend=c10d \
--rdzv-endpoint=$MASTER_ADDR:$MASTER_PORT \
train.py --config config.yaml
Slurm vs Kubernetes
| Параметр | Slurm | Kubernetes |
|---|---|---|
| Фокус | HPC, batch jobs | Микросервисы |
| GPU scheduling | Нативный, продвинутый | Через device plugin |
| Multi-node training | Отличный (srun + MPI) | Сложнее (Kubeflow, Volcano) |
| Контейнеры | Опционально (Enroot) | Обязательно |
| Масштаб | Тысячи GPU | Тысячи подов |
Связанные термины
Используется в
Использует