Singularity

Singularity is an open source container platform designed to be simple, fast, and secure. It allows unprivileged users to run untrusted containers in a trusted way. It has been designed with reproducability and HPC workloads in mind.

Usage

Singularity can be loaded with the following command:

module load apps/singularity

We provide small selection of pre-built containers, which can be found in /opt/apps/containers/ directory on the cluster. The definition files used to build those containers can be found in our GitHub repository.

You can also download containers using singularity pull command from the Singularity Container Library

singularity pull library://sylabsed/examples/lolcow

or from the Docker Hub

singularity pull docker://godlovedc/lolcow

Alternatively you can build your own containers. Please see the Singularity documentation for more information.

Warning

Using third party containers is a great way to get started, but you need to make sure that the container is behaving as expected before using it in your work.

Running containers

Containers can be used like any other application via an interactive or a batch job. You can either run the container

module load apps/singularity
singularity run ./container.sif

execute a command

module load apps/singularity
singularity exec ./container.sif python hello.py

or start a shell

module load apps/singularity
singularity shell ./container.sif
Singularity container.sif:~>