From isambard
Guide for using containers on Isambard AI (BriCS) supercomputers with Podman-HPC and Apptainer (formerly Singularity). Use this skill whenever a user asks about running containers on Isambard, using podman-hpc or apptainer/singularity, pulling or building container images, running containers on compute nodes or across multiple nodes with MPI or NCCL, GPU access inside containers, squashfs image migration, the brics/nccl or brics/apptainer-multi-node modules, using NGC (Nvidia GPU Cloud) containers on Isambard, or getting full Slingshot 11 interconnect bandwidth from containerised workloads. Also trigger for questions about aarch64-compatible container images, --fakeroot builds, the /host/adapt.sh entrypoint, or any container-related workflow on an HPE Cray system.
How this skill is triggered — by the user, by Claude, or both
Slash command
/isambard:containersThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Two container engines are available on Isambard-AI and Isambard 3:
Two container engines are available on Isambard-AI and Isambard 3:
| Engine | Command | Best for |
|---|---|---|
| Podman-HPC | podman-hpc | OCI/Docker-style workflows; building custom images on-system |
| Apptainer | apptainer (AIP2) / singularity (Isambard 3) | SIF-based HPC workflows; rootless builds from definition files |
Both engines support single-node and multi-node operation. Multi-node jobs require extra setup to use the Slingshot 11 high-speed interconnect — skip this at the cost of severely degraded bandwidth.
aarch64 images only. Isambard uses Arm64 (
aarch64). Only images built for this architecture will run. When browsing registries like NGC, filter tags bylinux/arm64before pulling.
linux/arm64 on Isambard.amd64 images on Isambard compute nodes./host/adapt.sh.--nv for GPU containers in Apptainer and --device=nvidia.com/gpu=all or
--gpu for Podman-HPC.To achieve full Slingshot 11 performance, the host's MPI and NCCL libraries must be visible inside the container. Both engines handle this by mounting them under /host/ and adjusting PATH and LD_LIBRARY_PATH via an entrypoint script /host/adapt.sh.
/host/openmpiNCCL_HOME=/host/nccl MPI_HOME=/host/openmpiThe mechanism differs between engines — see the reference files below.
Choose Podman-HPC if you:
--openmpi-pmi2 flag)Choose Apptainer if you:
--fakeroot)singularity is the installed command)See references/podman-hpc.md for full detail on:
$SCRATCH for use on compute nodes--openmpi-pmi2 and nccl-tests exampleRead this file when helping with any Podman-HPC task.
See references/apptainer.md for full detail on:
apptainer run, exec, and shell--nv--fakerootbrics/apptainer-multi-node module and nccl-tests exampleRead this file when helping with any Apptainer/Singularity task.
| Task | Podman-HPC | Apptainer |
|---|---|---|
| Pull image | podman-hpc pull <image> | apptainer build img.sif docker://<image> |
| Run image | podman-hpc run <image> | apptainer run img.sif |
| Run command | podman-hpc run <image> <cmd> | apptainer exec img.sif <cmd> |
| Interactive shell | podman-hpc run -it <image> bash | apptainer shell img.sif |
| GPU access | --device=nvidia.com/gpu=all or --gpu | --nv |
| Build from file | podman-hpc build . --tag <name> | apptainer build img.sif def.def |
| Rootless/fakeroot build | N/A | apptainer build --fakeroot img.sif def.def |
| Make available on compute nodes | podman-hpc migrate <image> | Images (.sif) are files on shared FS already |
| Multi-node setup | --openmpi-pmi2 flag | module load brics/apptainer-multi-node + source /host/adapt.sh |
| Slurm MPI interface | --mpi=pmi2 | standard srun |
npx claudepluginhub isambard-sc/skills.isambard.ac.uk --plugin isambardCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.