Table of Contents |
---|
Warning |
---|
The csubmitter tool is no longer available. if you need to install your container, please contact rchelp@hms.harvard.edu and provide all relevant information about your container, and we will install it for you. |
Overview
We are running a pilot project to support Singularity containers in O2; Singularity allows users to execute software containers within regular O2 jobs, and it is fully compatible with existing Docker images.
Common Install Formats
Typically requests will contain one of the following:
Docker or singularity image file (.img, .sif, etc)
Definition file(s) for installing containers (<spec>), or a link to container repository. These can be built using the commands:
Code Block singularity build <container-name>.sif docker://path/to/containername #or singularity build <container-name>.sif <spec>
nf-core modules: a path to the directory containing nf-core images created from a command like:
Code Block nf-core download -x none --container-system singularity --parallel-downloads 8 nf-core/
How to run Singularity containers in O2
...
Code Block |
---|
#!/bin/bash #SBATCH -p short #SBATCH -t 2:00:00 #SBATCH -c 1 #SBATCH --mem=4G singularity exec /n/app/singularity/containers/$USER/your_container.sif tool_to_run |
Note 1:
By default only /tmp and /home/$USER are available inside the singularity container.
...
Access permissions for those filesystem is preserved inside the container.
Note 2:
By default not all env variables might be ported inside the singularity container. If a variable defined outside Singularity needs to be ported inside the container and it is not available by default, it can be pre-set outside the container with the prefix SINGULARITYENV_. For example the variable FOO can be ported inside the singularity container by presetting it as SINGULARITYENV_FOO
Code Block |
---|
compute-a-16-21:~ FOO="something" compute-a-16-21:~ export SINGULARITYENV_FOO=$FOO |
Note 3:
If you plan to use one or more GPU cards inside the container you need to submit the O2 job to a partition that supports GPU computing and add the flag --nv
to your singularity command, for example:
...