Singularity

Overview

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 world.

Note: There are two strands of Singularity:

  1. Apptainer. The original open-source version of Singularity managed by HPCng: (releases / github). This is what we are using.

  2. And the Community Edition, forked by sylabs.io back in May 2021: SingularityCE (releases / github). They now also provide Pro and Enterprise editions.

Using

Use the module name singularity to discover versions available and to load the application.

Note: On Beartooth, version 3.10.3 is currently loaded by default on a session start up, however after 11/6/23 users will need to load singularity as a module and it will no longer be autoloaded when users log into the BT HPC.

Due to security/user permissions a researcher is currently unable to build a Singularity container directly on the cluster. They will need to build this on their own desktop/laptop and then copy the image across onto the cluster and then run.

 Alternatively:

  • You can try using a prebuilt contain from some where else.

  • Consult with ARCC on building a container that provides the environment you require. We have done this with a number of researchers to provide unique R environments with a series of pre-installed R packages.