HPC & reproducible research in Guix 1.1.0
Version 1.1.0 of Guix was announced yesterday. As the announcement points out, some 200 people contributed more than 14,000 commits since the previous release. This post focuses on important changes for HPC users, admins, and scientists made since version 1.0.1 was released in May 2019.
Reproducible science workflows
Here are some of the key improvements for the use of Guix as a tool for reproducible science:
- The new
guix time-machinecommand makes it easy to “jump” back to a specific revision of Guix and reproduce precisely a given software environment. This is key to supporting reproducible science workflows over time.
- The new “archival” checker of
guix lintcan send a “save” request to Software Heritage for the specified packages. This helps improve long-term archival of all the software Guix packages refer to.
guix pullcommand now honors
/etc/guix/channels.scm. This allows cluster administrators to specify a default set of channels, which can help new users get started.
the declarative and reproducible container provisioning tool, has
received noteworthy improvements:
- When creating Docker or Singularity images,
guix packnow record the environment variables needed for the execution of the applications added to the container.
guix packhas a new
--entry-pointcommand-line option to specify the name of the executable to run upon
- Docker images produced by
guix packnow include an empty
/tmpdirectory. Images also have a meaningful “repository name” now (the name shown when running
- Images produced by
guix pack -f squashfs(for Singularity) are now reproducible bit-for-bit. This makes it possible for anyone to independently verify the authenticity of such an image, and is generally a prerequisite for better security and quality assurance.
- A bug was fixed that
guix pack -f squashfsfrom running on CentOS 7.
Here are highlights among the 3,514 packages added and 3,368 packages upgraded since the previous release:
- Guix-Jupyter, which provides Guix integration for Jupyter notebooks, was added.
- The Guix Workflow Language, which integrates workflows with reproducible software deployment, has been upgraded to 0.2.1.
- The Open Cascade Technology Library (OCCT) is now packaged.
- MPICH is now available.
- Open MPI is now at 4.0.3. Its packaging and that of high-speed network drivers has been greatly improved to achieve performance on a wide range of networking products.
- hwloc, the hardware locality library Open MPI depends on, is now at 2.2.0.
- LAPACK was upgraded to 3.9.0.
- There’s a new
gfortran-toolchainpackage that pulls in GFortran and the whole tool chain (libc, Binutils, etc.).
- GCC 9.3.0 is available.
- FEniCS and related packages were updated to 2019.1.0.post0.
- Julia has been upgraded to 1.3.1. In addition, a new build system for Julia packages is now available, making it easier to package Julia software in Guix.
- MPI4PY is now at 3.0.2, and SLEPC4PY and PETSC4PY are at 3.11.0.
- MUMPS has been updated to 5.2.1 and its shared libraries are now installed.
- For statisticians, there’s now a total of 1,368 R packages, many of which comes from Bioconductor.
Do not miss the release notes for other goodies. Enjoy the new release!