Skip to main content

Computer and Network Resource Group

Resources

Singularity

About
  • Containers contain applications in a way that keeps them isolated from the host system on which they run. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package.
  • Singularity is a program that can launch containers securely in an HPC environment. Other similar programs are Docker, LXD, and Kubernetes. 
Module
  • Load Singularity Module to run any singularity commands
module load singularity/3.8.1  
Creating Containers
  • You CANNOT create containers on the Biocluster. It has to be done on your local machine. Creating a container requires root access which we do not allow. 
Download Containers
  • You need to use the biologin nodes (biologin-2 and biologin-3) to download containers
  • This will not work from the compute nodes as they do not have access to the internet
  • Download a pre-existing container from Singularity Hub - https://singularity-hub.org/. singularity-r is an example R container
singularity pull --name r-base_latest.sif shub://nickjer/singularity-r
singularity pull docker://r-base
Running Containers
  • Do not use the biologin nodes (biologin-2 and biologin-3) to run containers. The login nodes are only allowed to be used to download containers
  • From a compute node or a SLURM job script, run the following. r-base_latest.sif is name of the container. R is the program to run in the container. This can be bash to get a command line.
singularity exec r-base_latest.sif R 
Stroage
  • Your home folder is automatically mounted
  • You should have access to any group folders in /home/groups, /home/labs, and /private_stores
  • The local /scratch space is accessible. 
Issues
  • If the container does run properly or can't find the command it is trying to run, it's possible that the program exists in the /home folder within the singularity container. Since we automatically mount the Biocluster's /home folder in the container, it then can't find the command. To get around this, you can remount the Biocluster's /home folder in a new directory.
singularity exec --no-mount hostfs --bind /home:/newhome container.sif 

References

https://singularity.lbl.gov/