GNU Guix 1.0: a solid foundation for HPC and reproducible science
GNU Guix 1.0.0 was released just a few days ago! This is a major milestone for Guix, which has been under development for seven years, with more than 40,000 commits made by 260 people, and no less than 19 “0.x” releases.
- installation script and instructions
- reference manual: Deutsch, English, español, français
- quick reference card
More download options are available on the Guix web site.
What GNU Guix can do for scientists and HPC practitioners
We think Guix 1.0 is a solid toolbox for scientists concerned about reproducibility, for HPC practitioners, and also for cluster system administrators. We had outlined this vision in our 2015 paper, Reproducible and User-Controlled Software Environments in HPC with Guix; 1.0 makes this a reality, with a toolbox that goes beyond what we had envisioned back then. Let us summarize the salient features of Guix.
Reproducibility and transparency. Guix combines the flexibility and transparency of package managers like Anaconda or Spack, along with the reproducibility of “container-based solutions” such as Docker or Singularity.
guix describe, you can reproduce the exact same environment on a different machine, or at a different point in time. Our collaboration with Software Heritage aims to strengthen the ability to reproduce software environments in the long term.
Packages. No need to wait for cluster sysadmins to provide the software you’re interested in as modules: almost 10,000 packages are one
guix installcommand away, maintained openly by an active community, including lots of scientific software packages—from OpenFOAM and TensorFlow, to linear algebra software, and to statistics and bioinformatics packages.
Upgrade software when you decide, not when administrators decide, and have the assurance that you can roll back any time.
Flexibility. Guix allows you to customize packages directly from the command line, or by using its APIs. While a container image merely allows you to run the software as-is, Guix gives you the ability to inspect and modify the software you use.
Channels. With channels, developers can publish their own package collection. You can easily share package definitions for your software with colleagues and partners, while still benefiting from the properties of Guix.
Container images. You have a Guix-managed package collection and would like to use it on a cluster that lacks Guix? Create an application bundle with
guix pack, in the Docker (OCI) or Singularity format.
Development environments. With
guix environment, set up a “clean” development environments for your software in one command. If you’re used to Conda environments, you’ll find that this provides similar functionality, except that with Guix this is reproducible in time and space.
For system administrators
Relief from software packaging. Instead of providing modules, let users manage their own software environment and upgrade packages as they see fit.
Garbage collection. No need to guess what software is in use—running
guix gcis all it takes to free space.
Security. The vast majority of Guix packages are bit-reproducible. You do not need to trust third-party binaries, and when you do, you can challenge them.
Let’s get in touch!
Whatever your HPC or scientific use case is, we hope that you’ll find in
GNU Guix 1.0 the tools to further your goals. We’d love to hear from
you! You can email us at
firstname.lastname@example.org or on
the Guix mailing lists.