# Singularity

## What is Singularity?

Singularity is a container runtime designed for use in HPC.

Containers can run without root access on any Linux system with Singularity installed.

Singularity FAQ

Containers are immutable and directories are mounted to read or write from files. Some directories are mounted automatically when an image is run. More information is available here.

## How do I install the Singularity runtime?

If not, your HPC staff can get it from a EPEL (CentOS/RHEL) or a Debian/Ubuntu repository. More information is available here.

## How to use the RevBayes image

#### To get to an interative shell

singularity run --app rb RevBayes_Singularity_1.1.1.simg


#### To run a script file

singularity run --app rb RevBayes_Singularity_1.1.1.simg myscript.rev


Any arguments after RevBayes_Singularity_1.1.1.simg are passed to the rb command.

### MPI

The container also contains the MPI version of RevBayes. This version was built with the ubuntu-provided OpenMPI implementation (3.1.3) and may not work with other MPI versions.

To run a script file:

mpirun singularity run --app rbmpi RevBayes_Singularity_1.1.1.simg myscript.rev


If it does not work with the version of MPI you have on your cluster, you could ask your administrator to rebuild the image for the appropriate MPI version for your environment (see recipe below). More information is available here.