--- layout: default navsection: installguide title: Singularity container runtime ... {% comment %} Copyright (C) The Arvados Authors. All rights reserved. SPDX-License-Identifier: CC-BY-SA-3.0 {% endcomment %} h2(#overview). Overview Please refer to the "Singularity":{{site.baseurl}}/architecture/singularity.html documentation in the Architecture section. h2(#configuration). Configuration To use singularity, first make sure "Singularity is installed":https://sylabs.io/guides/3.7/user-guide/quick_start.html on your cloud worker image or SLURM/LSF compute nodes as applicable. Note @squashfs-tools@ is required.
$ singularity version
3.7.4
$ mksquashfs -version
mksquashfs version 4.3-git (2014/06/09)
[...]
Then update @Containers.RuntimeEngine@ in your cluster configuration:
      # Container runtime: "docker" (default) or "singularity"
      RuntimeEngine: singularity
Restart your dispatcher (@crunch-dispatch-slurm@, @arvados-dispatch-cloud@, or @arvados-dispatch-lsf@) after updating your configuration file. h2(#singularity_configuration). Singularity configuration Docker images are converted on the fly by @mksquashfs@, which can consume a considerable amount of RAM. The RAM usage of mksquashfs can be restricted in @/etc/singularity/singularity.conf@ with a line like @mksquashfs mem = 512M@. The amount of memory made available for mksquashfs should be configured lower than the smallest amount of memory requested by a container on the cluster to avoid the conversion being killed for using too much memory.