Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Auszug

enables users to have full control of their environment

Inhalt

Description

Singularity is a free, cross-platform and open-source computer program that performs operating-system-level virtualization also known as containerization. One of the main uses of Singularity is to bring containers and reproducibility to scientific computing and the high-performance computing (HPC) world.

...

VersionInstallation Pathmodulefile
3.2.1/opt/singularity/3.2.1singularity/3.2.1
3.10.3/sw/tools/singularity/3.10.3singularity/3.10.3
3.10.3/sw/tools/singularity/el8/3.10.3singularity/3.10.3-rocky

Prerequisites

No group membership or license is needed. Singularity can be used by all HLRN users by default.

Modules

Selecting the version and loading the environment

Load the modulefile

Codeblock
languagebash
$ module loadlad singularity/3.2.1


This provides access to the binary singularity wich can be used to run containers.

Bash completion

By default bash completion for singularity is not loaded. To enjoy bash completion with Singularity commands and options, source the bash completion file as stated below:

...

After loading singularity module, environment variable SING_AUTOC contains the necessary bash completion file.

Building images and running containers

Building images for Singularity requires root privileges. Therefore you need to prepare the image locally on your computer and then move the image into HLRN.

...

Codeblock
languagebash
singularity run --help

Example Jobscripts

Here is an example job of running the local Singularity image (.sif)

Codeblock
languagebash
#!/bin/bash
#SBATCH -p medium
#SBATCH -N 1
#SBATCH -t 60:00

module load singularity

singularity run /sw/tools/singularity/lolcow.sif

Binding directories

Sometimes it is required to have some specific paths in container, which are not mounted by default. For instance, /scratch/tmp is a default TMPDIR in the host system and is not available by default within the container, which might cause problems with software that needs it. You can either edit the environment variable or bind the /scratch as shown below:

singularity {run|exec|shell} --bind /scratch /path/to/singularity.sif

Cluster Specifics

A100

GPU A100 partition#Container - for NHR@ZIB GPUs

/wiki/spaces/PUB/pages/428683 - for NHR@Göttingen GPUs