Containers¶
Containers provide a stable fixed environment for your software that greatly reduces the dependency on any details of NERSC's software stack while retaining and, in some cases, improving performance.
If your application depends on MPI, then NERSC recommends installing
MPICH inside the container from source (i.e. not from apt-get) with
shared libraries. This allows your software to use the ABI-compatible
Cray MPICH which has been optimized for the Perlmutter network.
Users are welcome and encouraged to use containers to run their software on NERSC systems. To facilitate this, NERSC provides various container technologies.
We provide a page of Tips and Tricks for transitioning between podman-hpc and Shifter should the need arise.
podman-hpc¶
podman-hpc, an adaptation of
Podman for HPC use-cases, is available
on Perlmutter and offers several advantages over the Shifter tool, including
the ability to create containers on Perlmutter. This capability is available
because Podman utilizes usernamespaces which have, unfortunately, been less
reliable and performant at scale than desired.
Shifter¶
Shifter is a NERSC-developed tool which allows users to
run images on NERSC systems such as Perlmutter.
Building Custom Images¶
The page, Building Custom Images provides details of the base image that can be used as a starting point to develop your own container image. It also provides various building blocks that can be used as a template to develop your own.
registry.nersc.gov¶
NERSC offers a private image registry where users can store images. We offer information about and best practices for using the registry.