Containerised conda environments

I’m sure many of you would have seen the new analysis environment email that just went out. The main idea behind ‘containerising’ the conda environments is to reduce file count. However, running everything strictly inside singularity (Sylabs, not apptainer) has its disadvantages (e.g. setgid binaries no longer work, loss of access to PBS, unknown operating system). This attempts to ameliorate that in the way that SHPC does, by only entering the container when absolutely necessary (e.g. running python3). What I’ve not seen before is anyone taking advantage of singularity’s ability to manage squashfs file systems for application purposes. Each conda env lives in its own squashfs, and can be mounted into the container as needed. The container itself is a series of directories and symlinks that just bind-mount in most of Gadi’s OS, bypassing the need to maintain a separate OS within the container itself. The use of individual squashfs for conda envs mean the container never has to be updated unless there are major changes to Gadi’s OS layout. More details can be found here: Introducing the new hh5 conda environment — CLEX CMS Blog, and more technical info can be found here: Conda hh5 environment setup — CLEX CMS Wiki (this page is slightly out of date but that should be fixed soon)

Edit: URLs updated

2 Likes