Singularity on the HPC

What are containers?

Containers allow you to create and run containers that package up pieces of software in a way that is portable and reproducible.

Why would I use a container?

There are several reasons to use a container but the most common reason is to use an application as a developer intended.

Containers will come with all of the supporting software and libraries pre-packaged allowing you to skip compilation and installation and get straight to using the application. This is especially helpful for complex software or applications that normally run on a different operating system.

Making your own container?

Because containers are portable, you can create your own container. If you cannot find a container for your application please reach out to hpcadmin@fiu.edu for assistance.

How can I use a container?

FIU’s HPC currently supports Singularity as the method of using containers. Docker containers are not natively supported on the HPC but can be used by converting them to the SIF format preferred by Singularity.

Load the Singularity module:
# module load singularity-3.8.2
Once loaded, you can interact with your container using the “singularity” command. The format is:
# singularity [singularity command] [my container location] [my container software command]
If we wanted to use the Augustus application via a container we could do so with the following:
# singularity exec /home/slurmsample/singularity/augustus-3.4.0.sif augustus --help
If you wanted to explore the contents of a container, you can do so with the following:
# singularity shell /home/slurmsample/singularity/augustus-3.4.0.sif
This will log you in to your container, allowing you to see the applications and commands available within.
Performing our previous example using Augustus, this time with singularity shell:
# singularity shell /home/slurmsample/singularity/augustus-3.4.0.sif
# Singularity>
# Singularity> augustus --help