CERN Computing Seminar

Beyond Bundles - Reproducible Software Environments with GNU Guix

by Ludovic Courtès (Inria), Ricardo Wurmus (Max-Delbrück-Centrum)

31/3-004 - IT Amphitheatre (CERN)

31/3-004 - IT Amphitheatre


Show room on map

Building reproducible data analysis pipelines and numerical experiments is a key challenge for reproducible science, in which tools to reproduce software environments play a critical role.

The advent of “container-based” deployment tools such as Docker and Singularity has made it easier to replicate software environments. These tools are very much about bundling the bits of software binaries in a convenient way, not so much about describing how software is composed. Science is not just about replicating, though—it demands the ability to inspect and to experiment.

In this talk we will present GNU Guix, a software management toolkit. Guix departs from container-based solutions in that it enables declarative composition of software environments. It is comparable to “package managers” like apt or yum, but with a significant difference: Guix provides accurate provenance tracking of build artifacts, and bit-reproducible software. We will illustrate the many ways in which Guix can improve how software environments are managed: as a transactional package manager, as a VirtualEnv-style environment manager, or as a container provisioning tool. We will show that the tools lend themselves well to customization of the environment and report on our experience in a scientific and HPC context.

About the speakers

Ricardo Wurmus is a free software hacker and GNU/Linux system administrator. He’s currently working to support the high performance computing platform at the Max-Delbrück-Centrum where he develops and packages scientific software using the functional package manager GNU Guix. As a core contributor and co-maintainer of GNU Guix he has extensive experience in making stubborn software work.

Ludovic Courtès is a free software developer and functional programming enthusiast. He is currently working as a research engineer at Inria, with a focus on improving GNU Guix for the high-performance computing (HPC) and reproducible science use cases. Ludovic is a co-maintainer of GNU Guix, and a co-maintainer of the GNU Guile implementation of Scheme.

More information