Singularity

From UFRC
Revision as of 16:00, 27 October 2017 by Moskalenko (talk | contribs)
Jump to navigation Jump to search

We use and support your use of Singularity Containers on HiPerGator. As the Singularity website says you can make and customize your containers locally, copy them to your or your group's shared /ufrc space on HiPerGator and execute programs installed within whether in a dev session or in batch jobs.

While Singularity Documentation is the best place to find up-to-date and detailed information about using Singularity there some HiPerGator specific details that we'd like to point out to reduce the number of warnings you see and potential pitfalls you might encounter.

Image Builds

When building a new container image create the following directories that our Singularity install tries to automatically mount to avoid warnings or running into unavailability of those filesystems in the course of your normal work.

mkdir -p /ufrc /bio /rlts /scratch/local
Image Location

The /ufrc Blue Storage filesystem is the best suited for container image storage since it highly performant when reading large files such as container images in parallel. You are unlikely to be able to fit container image into your /home quote, but we'd like to emphasize that you should not do it even if you can to avoid performance issues and impacting other users.

Hub image downloads

When you run a container from an image stored in the Singularity Hub the container image will be downloaded to the current working directory. Make sure you run the command while on /ufrc filesystem and not in your home directory. E.g.

$ module load singularity
$ singularity run shub://GodloveD/lolcow

...

$ ls *.simg

GodloveD-lolcow-master.simg

Docker hub caching

When you run a Docker container from Docker Hub using Singularity the contents of the container image will be cached in your home directory in the '~/.singularity/docker'. You should either monitor the /home quota usage by the cache if you frequently use docker hub images or symlink that directory to your /ufrc directory. E.g.

ln -s /ufrc/my_group/$USER/singularity/ ~/.singularity

Singularity will detect the symlink and set the cache to the target directory in /ufrc.