Skip to main content

Examples

Practical examples for building and deploying Slurm packages with different versions and configurations.

Supported Versions

Slurm Versions: 26.05, 25.11, 24.11, 23.11

Toolchains: resolute, noble (default), jammy, rockylinux10, rockylinux9, rockylinux8

See Packages for the live cache browser and current support matrix.

Basic Build Examples

# Standard build with default toolchain (noble)
slurm-factory build-slurm --slurm-version 26.05

# Build specific version with default toolchain
slurm-factory build-slurm --slurm-version 24.11

# GPU support (~15-25GB)
slurm-factory build-slurm --slurm-version 26.05 --gpu

# Verbose output
slurm-factory --verbose build-slurm --slurm-version 26.05

# Custom project name
slurm-factory --project-name prod build-slurm --slurm-version 26.05

Toolchain Examples

Build for different operating systems:

# Ubuntu 26.04 (latest Ubuntu toolchain)
slurm-factory build-slurm --slurm-version 26.05 --toolchain resolute

# Ubuntu 24.04 (default, recommended)
slurm-factory build-slurm --slurm-version 26.05 --toolchain noble

# Ubuntu 22.04 LTS
slurm-factory build-slurm --slurm-version 24.11 --toolchain jammy

# Rocky Linux 10 / RHEL 10
slurm-factory build-slurm --slurm-version 26.05 --toolchain rockylinux10

# Rocky Linux 9 / RHEL 9
slurm-factory build-slurm --slurm-version 23.11 --toolchain rockylinux9

# Rocky Linux 8 / RHEL 8
slurm-factory build-slurm --slurm-version 23.11 --toolchain rockylinux8

# Combine with GPU support
slurm-factory build-slurm --slurm-version 26.05 --toolchain rockylinux9 --gpu

Toolchain Selection Guide:

ToolchainTarget OSGCC VersionglibcUse Case
resoluteUbuntu 26.0415.2.02.42Latest Ubuntu toolchain
nobleUbuntu 24.0413.3.02.39Default
jammyUbuntu 22.0411.4.02.35LTS distributions
rockylinux10Rocky 10 / RHEL 1014.3.12.39Latest Enterprise Linux
rockylinux9Rocky 9 / RHEL 911.5.02.34Enterprise Linux
rockylinux8Rocky 8 / RHEL 88.5.02.28Legacy Enterprise

Deployment Examples

# Standard deployment for Ubuntu 24.04
sudo tar -xzf ~/.slurm-factory/builds/noble/25.11/slurm-25.11-noble-amd64-software.tar.gz -C /opt/
cd /opt && sudo ./data/slurm_assets/slurm_install.sh --full-init
module load slurm/25.11-noble

# Deploy Rocky Linux 9 compatible build
sudo tar -xzf ~/.slurm-factory/builds/rockylinux9/24.11/slurm-24.11-rockylinux9-amd64-software.tar.gz -C /opt/
cd /opt && sudo ./data/slurm_assets/slurm_install.sh --full-init
module load slurm/24.11-rockylinux9

# Download from CDN
wget https://slurm-factory-spack-binary-cache.vantagecompute.ai/noble/25.11/amd64/slurm-25.11-noble-amd64-software.tar.gz
sudo tar -xzf slurm-25.11-noble-amd64-software.tar.gz -C /opt/
cd /opt && sudo ./data/slurm_assets/slurm_install.sh --full-init
module load slurm/25.11-noble

# Custom path
export SLURM_INSTALL_PREFIX=/shared/apps/slurm
module load slurm/25.11-noble

# Multi-version deployment
sudo tar -xzf slurm-25.11-noble-amd64-software.tar.gz -C /opt/slurm-25.11/
sudo tar -xzf slurm-24.11-jammy-amd64-software.tar.gz -C /opt/slurm-24.11/
cd /opt/slurm-25.11 && sudo ./data/slurm_assets/slurm_install.sh
cd /opt/slurm-24.11 && sudo ./data/slurm_assets/slurm_install.sh
module load slurm/25.11-noble # or slurm/24.11-jammy

CI/CD Integration

GitHub Actions:

name: Build Slurm
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: |
pipx install slurm-factory
slurm-factory build-slurm --slurm-version 25.11 --toolchain noble
- uses: actions/upload-artifact@v4
with:
name: slurm-package
path: ~/.slurm-factory/builds/

GitLab CI:

build:
image: ubuntu:24.04
script:
- apt-get update && apt-get install -y pipx docker.io
- pipx install slurm-factory
- slurm-factory build-slurm --slurm-version 25.11 --toolchain noble
artifacts:
paths:
- ~/.slurm-factory/builds/

Python API

from slurm_factory.builder import build
from slurm_factory.config import Settings

# Basic build
build(slurm_version="25.11", gpu=False)

# GPU build
build(slurm_version="25.11", gpu=True)

# With custom settings
settings = Settings(project_name="custom")
build(slurm_version="25.11", settings=settings)

Maintenance

# Clean build containers (keep caches)
slurm-factory clean

# Full cleanup (slower next build)
slurm-factory clean --full

# Check cache size
du -sh ~/.slurm-factory/

# Rebuild from scratch
slurm-factory clean --full
slurm-factory build-slurm --slurm-version 25.11