Apptainer 

Description

Apptainer/Singularity is an application containerization solution for High-Performance Computing (HPC). The goal of Apptainer is to allow for "mobility of computing": an application containerized on one Linux system should be able to run on another system, as it is, and without the need to reconcile software dependencies and Linux version differences between the source and target systems.

More information

- Homepage: https://apptainer.org

Available Versions of Apptainer

Version

Module

Available on

Version

Module

Available on

1.3.4-GCCcore-13.3.0

tools/Apptainer/1.3.4-GCCcore-13.3.0

Noctua 2

1.2.5-GCCcore-11.3.0

tools/Apptainer/1.2.5-GCCcore-11.3.0

Noctua 2

1.1.9-GCCcore-11.3.0

tools/Apptainer/1.1.9-GCCcore-11.3.0

Noctua 2

This table is generated automatically. If you need other versions please click pc2-support@uni-paderborn.de.

Usage Hints for Apptainer

If you need support in using this software or example job scripts please click pc2-support@uni-paderborn.de.

 

To use Apptainer, load the module

module load tools Apptainer

for the most recent version or, for example

module load tools/Apptainer/1.1.9-GCCcore-11.3.0

for a specific version.

Apptainer and Singularity

Here we would like to disentangle the naming confusing about Singularity and Apptainer, see also Singularity history on Wikipedia:

  • Singularity was the name of the original research project started at Lawrence Berkeley National in 2015

  • SingularityCE: open-source Singularity supported by Sylabs

  • Apptainer: open-source Singularity hosted by the Linux Foundation

 

How do Apptainer and SingularityCE compare

 

Apptainer and SingularityCE at PC2:

  • SingularityCE is installed in setuid mode at PC2

    • this makes it independent of user namespaces

  • Apptainer is installed in user-name space mode at PC2

    • this allows for additional functionality, like building containers directly on the HPC system

Creating Containers directly on the HPC System

As Apptainer is configured to use user namespaces on PC2 systems, you can create containers directly on the frontends of the HPC systems, e.g. with a recipe like

BootStrap: docker From: ubuntu:22.04 %post mkdir /pc2 apt-get -y update apt-get -y install htop vim %environment export LC_ALL=C %runscript echo "hello from container" %labels Author blub

and the command

apptainer build ubuntu.sif ubuntu.recipe

Please be aware that you should set the environment variables for the cache and tmp-dir as explained in Singularity-Introduction | Ensuring Enough Storage Space .