...
Info | ||
---|---|---|
| ||
Note, that flag |
Singularity
Singularity is an alternative way to run containers, often with the purpose of scientific computing on HPCs. Whereas Docker excels at microservices i.e. small and single-application containers with a single TCP port open to the public, Singularity aims to provide reproducible results embedded in a container image available to the public. Because of that, several details such as image tagging and even image format differ between Singularity and Docker (with a conversion tool available). Additionally, Singularity has a different mode of operation which does not require superuser privileges, therefore it is more suitable to be installed on HPCs. It also has a native support for MPI and GPGPU calculations.
Availability
Singularity is installed on Marconi HPC and available there after executing: module load singularity
Instructions to install Singularity are available in the documentation.
Exercises
Start Singularity container
- Search for Ubuntu image:
singularity search ubuntu
- Download latest image:
singularity pull library://library/default/ubuntu
- Notice that the image is in fact a file downloaded to your local directory:
ls -l ubuntu_latest.sif
- Run the image:
./ubuntu_latest.sif
- Notice that you are mapped to the same user as in the host machine, run
whoami
andid
- Notice that you are seeing your own
$HOME
directory from the container:ls -l
- Check what system are you currently running:
cat /etc/os-release
uDocker
uDocker was created in H2020 project INDIGO-DataCloud. It uses Docker images natively, but provides a userspace tool to run and manage containers. Because it does not require superuser privileges, it is also a good fit as a container tool to be used in HPCs. uDocker also supports MPI calculations and provides ways to access host's GPU.