Skip to main content

Slurm builder project by Vantage Compute - builds Slurm packages in Docker containers

Project description

Vantage Compute Logo

Slurm Factory

License Python PyPI Docker

Build relocatable, GPG-signed Slurm packages using Docker and Spack.

Documentation | Buildcache

Quick Start

Option 1: Install Pre-built Slurm from Buildcache (Fastest!)

Use Spack to install GPG-signed pre-built binaries (no slurm-factory tool needed):

# Install Spack
git clone --depth 1 --branch v1.0.0 https://github.com/spack/spack.git
source spack/share/spack/setup-env.sh

# Add mirrors for dependencies and Slurm
SLURM_VERSION=25.11
TOOLCHAIN=noble  # or: jammy, resolute, rockylinux9, rockylinux10, rockylinux8
CLOUDFRONT_URL=https://slurm-factory-spack-binary-cache.vantagecompute.ai

spack mirror add slurm-factory-deps "${CLOUDFRONT_URL}/${TOOLCHAIN}/slurm/deps/"
spack mirror add slurm-factory-slurm "${CLOUDFRONT_URL}/${TOOLCHAIN}/slurm/${SLURM_VERSION}/"

# Import GPG keys and install Slurm (5-15 min!)
spack buildcache keys --install --trust
spack install slurm@${SLURM_VERSION}

→ Full guide: Installing Slurm from Buildcache

Option 2: Build Custom Slurm with slurm-factory Tool

Install the slurm-factory tool to build custom packages:

# Install Docker and the slurm-factory build tool
pip install slurm-factory

# Build Slurm with default compiler (GCC 13.4.0)
slurm-factory build-slurm --slurm-version 25.11

→ Full guide: Installing slurm-factory Tool

Supported Versions

Slurm × Operating System Matrix

All combinations use OS-provided compilers and are available in the public buildcache:

Slurm Version Status Supported Operating Systems
25.11 Latest Rocky 10, Rocky 9, Rocky 8, Ubuntu 24.04, Ubuntu 22.04, Ubuntu 25.04
24.11 LTS Rocky 10, Rocky 9, Rocky 8, Ubuntu 24.04, Ubuntu 22.04, Ubuntu 25.04
23.11 Stable Rocky 10, Rocky 9, Rocky 8, Ubuntu 24.04, Ubuntu 22.04, Ubuntu 25.04

Default: Ubuntu 24.04 (Noble) - recommended for most users

Operating System Compiler Toolchains

Slurm is built using the default system compiler from each OS distribution:

OS Codename GCC Version GLIBC Use Case
Ubuntu 24.04 Noble 13.3.0 2.39 Recommended - Modern stable
Ubuntu 26.04 Resolute 15.2.0 2.42 Latest features (development)
Ubuntu 22.04 Jammy 11.4.0 2.35 LTS - Wide compatibility
Rocky Linux 10 - 14.3.1 2.39 RHEL 10 compatible
Rocky Linux 9 - 11.5.0 2.34 RHEL 9 compatible
Rocky Linux 8 - 8.5.0 2.28 RHEL 8 compatible

GPG Package Signing

All packages are cryptographically signed with GPG for security and integrity.

Why GPG Signing?

  • Authenticity: Verify packages were built by Vantage Compute
  • Integrity: Detect tampering or corruption during download
  • Security: Prevent man-in-the-middle attacks
  • Trust Chain: Establish provenance for production deployments

GPG Key Information

Key ID: DFB92630BCA5AB71
Owner: Vantage Compute Corporation (Slurm Factory Spack Cache Signing Key)
Email: info@vantagecompute.ai

Importing GPG Keys

Keys are automatically imported when using the buildcache:

# Automatic import and trust
spack buildcache keys --install --trust

# Packages are verified during installation
spack install slurm@25.11%gcc@13.4.0

Features

  • 🔐 GPG-Signed Packages - All Slurm packages cryptographically signed
  • ⚡ 10-15x Faster - Pre-built packages install in 5-15 minutes vs 45-90 minutes
  • 📦 Relocatable - Deploy to any path, no host dependencies
  • 🌍 CDN Distribution - CloudFront-distributed buildcache for fast global access
  • 🐧 6 OS Platforms - Rocky Linux 8/9/10, Ubuntu 22.04/24.04/25.04
  • 🎯 3 Slurm Versions - 25.11, 24.11, 23.11
  • 🏭 OS-Native Compilers - Uses system-provided GCC for maximum compatibility
  • 🚀 Optimized - Architecture-specific compilation (x86_64_v3)
  • 🐳 Clean Builds - Docker isolation, no system pollution

Build Options

Build from Source with slurm-factory

# Default build (CPU-only, Ubuntu 24.04 toolchain)
slurm-factory build-slurm --slurm-version 25.11

# GPU support (CUDA/ROCm)
slurm-factory build-slurm --slurm-version 25.11 --gpu

# Different OS toolchain
slurm-factory build-slurm --slurm-version 25.11 --toolchain jammy

# Build and publish to buildcache with GPG signing
slurm-factory build-slurm --slurm-version 25.11

Install Pre-built from Buildcache (Fastest!)

# Install Spack
git clone --depth 1 --branch v1.0.0 https://github.com/spack/spack.git
source spack/share/spack/setup-env.sh

# Configure mirrors for buildcache
SLURM_VERSION=25.11
TOOLCHAIN=noble  # or: jammy, resolute, rockylinux9, rockylinux10, rockylinux8
CLOUDFRONT_URL=https://slurm-factory-spack-binary-cache.vantagecompute.ai

spack mirror add slurm-factory-deps "${CLOUDFRONT_URL}/${TOOLCHAIN}/slurm/deps/"
spack mirror add slurm-factory-slurm "${CLOUDFRONT_URL}/${TOOLCHAIN}/slurm/${SLURM_VERSION}/"

# Import GPG signing keys and trust
spack buildcache keys --install --trust

# Install signed package (5-15 minutes!)
spack install slurm@${SLURM_VERSION} target=x86_64_v3

# Deploy
spack load slurm@${SLURM_VERSION}

Download Pre-built Tarball (Alternative)

Download complete Slurm installation as a tarball with GPG signature verification:

# Set versions
SLURM_VERSION=25.11
TOOLCHAIN=noble  # or: jammy, rockylinux9, etc.
CLOUDFRONT_URL=https://slurm-factory-spack-binary-cache.vantagecompute.ai

# Download tarball and signature
wget "${CLOUDFRONT_URL}/builds/${SLURM_VERSION}/${TOOLCHAIN}/slurm-${SLURM_VERSION}-${TOOLCHAIN}-software.tar.gz"
wget "${CLOUDFRONT_URL}/builds/${SLURM_VERSION}/${TOOLCHAIN}/slurm-${SLURM_VERSION}-${TOOLCHAIN}-software.tar.gz.asc"

# Import GPG key
gpg --keyserver keyserver.ubuntu.com --recv-keys DFB92630BCA5AB71

# Verify signature
gpg --verify slurm-${SLURM_VERSION}-${TOOLCHAIN}-software.tar.gz.asc \
             slurm-${SLURM_VERSION}-${TOOLCHAIN}-software.tar.gz

# Extract and install
sudo tar -xzf slurm-${SLURM_VERSION}-${TOOLCHAIN}-software.tar.gz -C /opt/
cd /opt && sudo ./data/slurm_assets/slurm_install.sh --full-init

Package Structure

All builds produce GPG-signed relocatable tarballs:

slurm-25.11-noble-software.tar.gz
├── view/                    # Slurm binaries & libraries
├── modules/slurm/25.11.lua  # Lmod module (relocatable)
└── data/slurm_assets/       # Config templates & install script

Deployment

# Extract (from tarball build)
sudo tar -xzf slurm-25.11-noble-software.tar.gz -C /opt/

# Install (creates users, configs, services)
cd /opt && sudo ./data/slurm_assets/slurm_install.sh --full-init

# Use
module load slurm/25.11

Buildcache Structure

The public buildcache is organized by OS toolchain for optimal performance:

https://slurm-factory-spack-binary-cache.vantagecompute.ai/
├── <toolchain>/
│   └── slurm/
│       ├── deps/            # Slurm dependencies (GPG-signed)
│       ├── 25.11/           # Slurm 25.11 packages (GPG-signed)
│       ├── 24.11/           # Slurm 24.11 packages (GPG-signed)
│       └── 23.11/           # Slurm 23.11 packages (GPG-signed)
├── noble/                   # Ubuntu 24.04
│   └── slurm/
│       ├── deps/
│       ├── 25.11/
│       ├── 24.11/
│       └── 23.11/
├── jammy/                   # Ubuntu 22.04
├── resolute/                # Ubuntu 25.04
├── rockylinux10/            # Rocky Linux 10
├── rockylinux9/             # Rocky Linux 9
├── rockylinux8/             # Rocky Linux 8
└── builds/
    └── <slurm_version>/
        └── <toolchain>/
            ├── slurm-<version>-<toolchain>-software.tar.gz      # Complete tarball
            └── slurm-<version>-<toolchain>-software.tar.gz.asc  # GPG signature

### Mirror Architecture

The buildcache uses a **toolchain-first structure** organized by OS for efficient caching:

1. **`<toolchain>/slurm/deps/`** - Slurm runtime dependencies (OpenMPI, PMIx, Munge, etc.)
2. **`<toolchain>/slurm/<version>/`** - Slurm packages for each version

This separation allows:

- ✅ **Better caching** - Dependencies shared across Slurm versions within a toolchain
- ✅ **OS compatibility** - Packages built with native system compilers
- ✅ **Reduced storage** - No duplication of common packages per toolchain
- ✅ **Parallel downloads** - Spack can fetch from multiple mirrors simultaneously

## Requirements

- Python 3.12+
- Docker 24.0+ (for building from source)
- 50GB disk space
- 4+ CPU cores (8+ recommended)
- 16GB RAM (32GB+ recommended)

For buildcache installs: only Spack required (no Docker needed)

## Documentation

**[vantagecompute.github.io/slurm-factory](https://vantagecompute.github.io/slurm-factory)**

- [Overview](https://vantagecompute.github.io/slurm-factory/overview) - Architecture and features
- [Installation](https://vantagecompute.github.io/slurm-factory/installation) - Setup and quick start
- [Examples](https://vantagecompute.github.io/slurm-factory/examples) - Common use cases
- [Buildcache Guide](https://vantagecompute.github.io/slurm-factory/slurm-factory-spack-build-cache) - GPG signing and distribution
- [API Reference](https://vantagecompute.github.io/slurm-factory/api-reference) - Python API

## Development

```bash
# Install from source
git clone https://github.com/vantagecompute/slurm-factory.git
cd slurm-factory
pip install -e .

# Run tests
pytest

# Build docs
cd docusaurus && npm run build

License

Apache License 2.0 - See LICENSE file.

Support


Built with ❤️ by Vantage Compute

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slurm_factory-0.1.33.tar.gz (51.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slurm_factory-0.1.33-py3-none-any.whl (67.5 kB view details)

Uploaded Python 3

File details

Details for the file slurm_factory-0.1.33.tar.gz.

File metadata

  • Download URL: slurm_factory-0.1.33.tar.gz
  • Upload date:
  • Size: 51.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for slurm_factory-0.1.33.tar.gz
Algorithm Hash digest
SHA256 bcd467c430b51ef78b99b983d7f1b62823d933156db0231988f7175ae92c5155
MD5 09816657a727846416bfc57fe613f8ba
BLAKE2b-256 cd47f45957e984957eb633e3142c584644210e68033bb9c458a0b9e7abfb2f7d

See more details on using hashes here.

File details

Details for the file slurm_factory-0.1.33-py3-none-any.whl.

File metadata

  • Download URL: slurm_factory-0.1.33-py3-none-any.whl
  • Upload date:
  • Size: 67.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for slurm_factory-0.1.33-py3-none-any.whl
Algorithm Hash digest
SHA256 09cb601af35334652731a2ea2df82f78bcf304d72e4c4a5b2f261c78051532e6
MD5 e0359887e8aa0ae6f258497624a32be3
BLAKE2b-256 750c8c2762363ce849fffe0c663f29b9e8a7af712f485fa8bdd57683d891aad6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page