Run-Time
From the user perspective a containerized application environment offers the freedom to select any Linux distribution of your choice to build the container image. Furthermore the user can install any package or software required. Containers provide a high level of customization down to a very specific collection of compliers, libraries and other tools in any desired version. But this freedom of choice comes with the requirement to the user to support a containerized application environment self-reliant. This chapter provides an over how to work with containers on the compute cluster.
User which do not want to use a custom container should refer to the Virtual Application Environments (VAEs) for more information.
Submit Node
Submit Node | CRE | Platform | Support Until |
---|---|---|---|
virgo.hpc.gsi.de | Apptainer | RockyLinux | TBD |
The cluster can execute any number of containers. Users build containers will be treated as black-boxes by the cluster support, hence any container internals are under the responsibility of the user. The cluster uses Apptainer 1 as Container Run-time Engine (CRE), which is a container technology designed to support scientific computing. Login to virgo.hpc.gsi.de
to access the host environment including the command-line interface to the CRE.
Note that the CRE version is subject to change depending on the necessities of the cluster. This includes upgrades to newer versions due to security concerns as well as requirements in supporting the VAEs. We do not guarantee any backwards compatibility!
A detailed introduction to the functionality of Apptainer is described in the command line section of the Apptainer User Guide 2. Examples in the following will use these environment variables to define common paths:
Environment
Variable | File Suffix | Description |
---|---|---|
APPTAINER_DEFINITIONS |
.def |
Definition Files 3 |
APPTAINER_CONTAINERS |
.sif |
Containers Images 4 |
In order to use containers on the cluster store them on shared storage, i.e.:
# path to the container artifacts on shared storage
export APPTAINER_CONTAINERS=$LUSTRE_HOME/containers
export APPTAINER_DEFINITIONS=$APPTAINER_CONTAINERS/definitions
Concerning the compatibility of Apptainer with Singularity 5:
- Default metadata within SIF images and their filesystems will retain the singularity name without change. This will ensure that containers built with Apptainer will continue to work with installations of Singularity.
- Apptainer respects environment variables with the
SINGULARITY_
andSINGULARITYENV_
prefixes when their respectiveAPPTAINER_
andAPPTAINERENV_
counterparts are not set. - Apptainer will look for a
~/.singularity
directory when the~/.apptainer
directory is being created and will migrate user configuration files and keyrings automatically.
Footnotes
Apptainer Documentation
http://apptainer.org/docs/↩︎https://apptainer.org/docs/user/main/↩︎
Apptainer User Guide - Definition Files
http://apptainer.org/docs/user/main/definition_files.html↩︎Apptainer User Guide - Build a Container
http://apptainer.org/docs/user/main/build_a_container.html↩︎Apptainer User Guide - Singularity Compatibility
https://apptainer.org/docs/user/main/singularity_compatibility.html↩︎