Skip to content

Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Runtime Backends

runtime.backend selects how each service is launched inside the Slurm step. The default is pyxis.

For a beginner explanation of Slurm steps, Pyxis, Enroot, and shared runtime caches, start with Slurm And Container Basics.

runtime:
  backend: pyxis

Backend Summary

BackendLaunch shapeRequired toolsImage/artifact shapeNotes
pyxissrun --container-*Slurm with Pyxis support plus Enroot on the submission hostremote images or local .sqsh / .squashfsDefault path and the only backend supported by local development workflows.
apptainersrun plus apptainer exec/runapptainer on submission and compute nodesremote images prepared or reused as .sif; local .sif acceptedUse when the site standardizes on Apptainer instead of Pyxis.
singularitysrun plus singularity exec/runsingularity on submission and compute nodesremote images prepared or reused as .sif; local .sif acceptedSimilar to Apptainer for sites that still use Singularity.
hostdirect srun commandSlurm client tools and host software/modulesno container imageServices must set command or entrypoint; image prepare and container bind mounts are not applied.

For Pyxis, check support with:

srun --help | grep container-image

For all backends, preflight checks the selected backend tools:

hpc-compose preflight -f compose.yaml

Local Mode

up --local, test --local, dev, and tmux are intentionally narrow:

  • Linux only
  • runtime.backend: pyxis only
  • Pyxis-compatible Enroot tooling on the host
  • single-host specs only
  • no distributed or partitioned placement
  • no service-level MPI
  • no Slurm arrays or scheduler dependencies

Use local mode to inspect and debug a Pyxis/Enroot single-host launch path. dev adds file-change restart requests to the local supervisor, and tmux tails tracked local service logs in panes. Neither command changes the process-supervision model, and local mode is not a replacement for Slurm distributed execution.

Host Runtime Notes

runtime.backend: host runs service commands directly under srun. It is useful for module-based workflows or nested schedulers that already manage their own software environment.

Because there is no container:

  • image is optional
  • service volumes are rejected
  • x-runtime.prepare and x-enroot.prepare are rejected
  • x-slurm.mpi.host_mpi.bind_paths is not meaningful

Use top-level or service-level x-env for host modules, Spack views, and environment variables.