nix-singularity: bringing Nix to the High Performance Computing world
This lightning talk demonstrates how to integrate Nix with Singularity and Slurm, to build packages in a High Performance Computing (HPC) Center.
Singularity is a container runtime that grew independently of Docker/Podman. It is commonly used in HPC's, as it allows more granular control of access to resources.
Singularity's container images can be transformed from Docker images, but using Nix requires some special workarounds. The purpose of this talk is to demonstrate that with these small tweaks and some wrapper scripts, it is possible to run Nix inside Singularity.
A recorded demo will be shown, using Nix in a supercomputer, taking advantage of the large resources to perform a build.
The author works a DevOps engineer at the Barcelona Supercomputing Center. Also known as the National Supercomputing Center, it hosts Marenostrum 5. This machines has 6408 general-purpose nodes, for a total of 717696 cores, and is the most powerful supercomputer in Spain.
Fernando (viperML) works as a DevOps Engineer at the Barcelona Supercomputing Center. He has used Nix for many years, creating projects such as nh or wrapper-manager. He also has experience working as a Guix developer in France, deploying HPC applications to the national supercomputing centers.