Charliecloud at LRZ

What is Charliecloud

Container solution in user space. https://hpc.github.io/charliecloud/index.html

Getting started ...

> module load charliecloud

Or, for more up-to-date versions, if needed

> module use /lrz/sys/share/modules/extfiles/
> module av charliecloud

Charliecloud Images

https://hpc.github.io/charliecloud/tutorial.html#seconds-to-charliecloud
(direct mounting of SquashFS files is not possible – permissions are denied; but using unsquashfs (may require to install squashfs e.g. via user_spack), at least sqfs files can be uncompressed into normal directories)

https://hpc.github.io/charliecloud/tutorial.html#build-from-dockerfile

Important: Please use -s $TMPDIR in order to locate the storage directory NOT into /var/tmp !

Usage

> ch-run --help                     # for help
# for example: interactive container as root (-u 0), with writable image (-w), mounting host directories (-b), private tmp directory (-t), initial working directory (-c)
> ch-run -u 0 -w -b /gpfs:/gpfs -b /dss:/dss -b /lrz:/lrz -t -c $HOME <path-to-image> -- /bin/bash -i

For running MPI applications in a container:

> mpiexec <mpiexec params> ch-run <ch-run params> -- <mpi-application>

In order that this works, MPI version/vendor of mpiexec and the mpi-application must be the same. (ch-run changes effectively only the file system environment. It is NOT virtualization!)