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 Тысячи подов

Связанные термины

Используется в
Использует

Попробуйте на практике

Арендуйте GPU и запустите ML-модели в Intelion Cloud

Начать работу