This section of the documentation describes briefly how to use singularity on LUMI
Singularity is available on LUMI-C as the executable
singularity. No modules
need to be loaded.
If you are familiar with Docker containers, Singularity containers are essentially the same thing, but are better suited for multi-user systems such as the LUMI supercomputer. Containers provide an isolated software environment for each application, which makes it easier to install complex applications. On shared file systems, launch times can also be much shorter for containers compared to alternatives such as conda.
You can read more about Singularity in the official user guide.
The singularity project is in the process of being renamed to apptainer, so you might se both terms being used depending on the material you are reading
To use singularity containers on LUMI you can:
- Download and existing container
- Use a container provided by the computing environment
- Build your own container
Pulling container images from a registry¶
Singularity allows pulling images from container registries such as DockerHub or
AMD Infinity Hub. For instance, the Ubuntu image
ubuntu:21.04 can be pulled
from DockerHub with the following command:
ubuntu_21.04.sifin the directory where the command was run. Please take care to only use images uploaded from reputable sources as these images can easily be a source of security vulnerabilities or even contain malicious code.
The compute nodes of LUMI-C are not connected to the internet. As a
consequence, the images need to be pulled in on the login nodes (or
transferred to LUMI with other means such as
When pulling docker containers using singularity, the conversion can be
quite heavy. Speed up the conversion and avoid leaving behind temporary
files by moving the temporary to
Running a container¶
Once the image has been pulled, the container can be run. For instance, here we check the version of Ubuntu running in the container
NAME="Ubuntu" VERSION="21.04 (Hirsute Hippo)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 21.04" VERSION_ID="21.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=hirsute UBUNTU_CODENAME=hirsute
By default, some file system partitions, such as
/project are not
accessible from the container. To make them available, they need to be
explicitly bound by passing the
-B/--bind command line option to
singularity exec/run. For instance