# Guix-HPC Activity Report 2023-2024

Céline Acary-Robert, Emmanuel Agullo, Benjamin Arrondeau, Lars Bilke, Dylan Bissuel, Ludovic Courtès, Collin J. Doering, Romain Garbage, Konrad Hinsen, Arun Isaac, et al.

## ► To cite this version:

Céline Acary-Robert, Emmanuel Agullo, Benjamin Arrondeau, Lars Bilke, Dylan Bissuel, et al. Guix-HPC Activity Report 2023-2024. Inria Bordeaux - Sud Ouest. 2025, pp.1-36. hal-04942752

HAL Id: hal-04942752

https://hal.science/hal-04942752v1

Submitted on 12 Feb 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>
<figure><img src="image_2.png" /></figure>

GuixHPC

2023-2024
ACTIVITY REPORT
February 2025.

Edited by Konrad Hinsen and Simon Tournier.

Written by Céline Acary-Robert, Emmanuel Agullo, Benjamin Arrondeau, Lars Bilke, Dylan Bissuel, Ludovic Courtès, Collin J. Doering, Romain Garbage, Konrad Hinsen, Arun Isaac, Emmanuel Medernach, Sorina Camarasu Pop, Pjotr Prins, Cayetano Santos, Philippe Swartvagher, Simon Tournier, Ricardo Wurmus.

Published under the terms of the CC-BY-SA 4.0 license and
those of the GNU Free Documentation License (version 1.3 or
later, with no Invariant Sections, no Front-Cover Texts, and no
Back-Cover Texts).

Cover graphics by Luis Felipe, published under the terms of the
CC-BY-SA 4.0 license.
Guix-HPC is a collaborative effort to bring **reproducible software deployment to scientific workflows and high-performance computing (HPC)**. Guix-HPC builds upon the GNU Guix<fnref n="1" /> software deployment tools and aims to make them useful for HPC practitioners and scientists concerned with dependency graph control and customization and, uniquely, reproducible research.

Guix-HPC started as a joint software development project involving three research institutes: Inria<fnref n="2" />, the Max Delbrück Center for Molecular Medicine (MDC)<fnref n="3" />, and the Utrecht Bioinformatics Center (UBC)<fnref n="4" />. Guix for HPC and reproducible research has since received contributions from many individuals and organizations, including CNRS<fnref n="5" />, Université Paris Cité<fnref n="6" />, the University of Tennessee Health Science Center<fnref n="7" /> (UTHSC), Cornell University<fnref n="8" />, and AMD<fnref n="9" />. HPC remains a conservative

<footnote n="1">¹https://guix.gnu.org</footnote>

<footnote n="2">²https://www.inria.fr/en/</footnote>

<footnote n="3">³https://www.mdc-berlin.de/</footnote>

<footnote n="4">⁴https://ubc.uu.nl/</footnote>

<footnote n="5">⁵https://www.cnrs.fr/en</footnote>

<footnote n="6">⁶https://u-paris.fr/en/</footnote>

<footnote n="7">⁷https://uthsc.edu/</footnote>

<footnote n="8">⁸https://www.csl.cornell.edu/</footnote>

<footnote n="9">⁹https://www.amd.com</footnote>
domain but over the years, we have reached out to many orga-
nizations and people who share our goal of improving upon the
status quo when it comes to software deployment.

This report—our seventh report!—highlights key achieve-
ments of Guix-HPC between our previous report<fnref n="10" /> a year ago
and today, February 2025. This year was marked by exciting
developments for HPC and reproducible workflows. Significant
advances were made in integrating Guix into the complex soft-
ware landscape of HPC, taking the roles of software manager,
workflow execution engine, backend for generating container
images, or provider for the complete operating system layer.
Support for reproducing computations from the past was also
much improved. And, as usual, we have been using Guix for
research, and teaching other researchers how to get started.

<footnote n="10">¹⁰https://hpc.guix.info/blog/2024/02/guix-hpc-activity-report-2023/</footnote>
# 1

## Outline

Guix-HPC aims to tackle the following high-level objectives:

* *Reproducible scientific workflows.* Improve the GNU Guix tool set to better support reproducible scientific workflows and to simplify sharing and publication of software environments.

* *Cluster usage.* Streamlining Guix deployment on HPC clusters, and providing interoperability with clusters not running Guix.

* *Outreach & user support.* Reaching out to the HPC and scientific research communities and organizing training sessions.

The following sections detail work that has been carried out in each of these areas.
2

Reproducible Scientific
Workflows

Supporting reproducible research workflows is a major goal for Guix-HPC. This section looks at progress made on packaging and tooling.

2.1 Packages

With now more than 57,000 packages in Guix and related channels for scientific packages, the least we can say is that the package collection has grown significantly. Here are some of the highlights of the many additions that were made.

A critical element for HPC is libraries implementing the Message Passing Interface (MPI). Open MPI version 5 was added this year, together with upgrades of key packages: slurm, libfabric, ucx, and more. Noticeably, libfabric gained support for
the HPE/Cray **Slingshot interconnect**<fnref n="11" />. HPE released its supporting library, `libcxi`, in November 2023, and Guix was the first distribution to provide it. Slingshot support is particularly important for today's HPC workloads: Slingshot is the interconnect found on key supercomputers, from Adastra (Tier-1 supercomputer in France), to LUMI (Tier-0 supercomputer operated by EuroHPC in Finland), and Frontier (currently the first supercomputer in Top500, hosted at ORNL in the United States).

We verified that our MPI packages achieve **performance portability** by shipping MPI benchmarks bundled with `guix` pack to Adastra and running them without further ado, and do not suffer performance loss compared to the vendor-provided opaque MPI binaries. See the section *Cluster Usage and Deployment* for concrete results obtained on major supercomputers with different types of interconnects.

In the Guix-HPC channel<fnref n="12" />, the ROCm/HIP software stack for AMD GPUs was upgraded to version 6.2. AMD engineers also contributed more packages to the collection, including `rocprof-register` and `hiprand` (helper HIP/ROCm libraries) and AOCL optimized numerical libraries for AMD processors (`aocl-utils`, `aocl-lapack`, `aocl-scalapack`).

An increasingly important tool for computational sciences is the **Julia programming language**. In the main Guix channel, more than 300 packages of Julia libraries are now available, making it more readily usable.

Much scientific software packaging activity this year happened in the **Guix-Science channel**<fnref n="13" />. First, we migrated the Guix-Science umbrella (which includes several channels in addition to Guix-Science) to Codeberg, a modern free software forge.

<footnote n="11">¹¹https://hpc.guix.info/blog/2024/11/targeting-the-crayhpe-slingshot-interconnect/</footnote>

<footnote n="12">¹²https://gitlab.inria.fr/guix-hpc/guix-hpc</footnote>

<footnote n="13">¹³https://codeberg.org/guix-science/guix-science</footnote>
We developed the missing parts to hook repositories at Codeberg into our continuous integration and continuous delivery (CI/CD) server<fnref n="14" /> at https://guix.bordeaux.inria.fr.

The Guix-Science channel received contributions for packages in **new scientific domains**, including physics, neuroscience, and electronics design. We are eager to see the list of scientific domains covered by Guix-Science grow.

Last, a new version of **Guix-Jupyter**, the Jupyter kernel that brings reproducible software deployment to notebooks, was released<fnref n="15" /> in November. The new version allows users to pin multiple channels in their notebook and improves its built-in kernel for Guile programming.

## 2.2 Concise Common Workflow Language

The Concise Common Workflow Language (ccwl)<fnref n="16" /> is a concise syntax to express Common Workflow Language (CWL)<fnref n="17" /> workflows. It is implemented as an EDSL (Embedded Domain Specific Language) in Guile Scheme. Unlike workflow languages such as the Guix Workflow Language (GWL), ccwl is agnostic to deployment. It does not use Guix internally to deploy applications. It merely picks up applications from PATH and thus interoperates well with Guix and any other package managers of the user’s choice. ccwl also **compiles to CWL** and thus reuses all tooling built to run CWL workflows. Workflows written in ccwl may be freely reused by CWL users without impediment, thus ensuring smooth collaboration between ccwl and CWL users.

<footnote n="14">¹⁴https://hpc.guix.info/blog/2025/01/join-the-guix-science-community/</footnote>

<footnote n="15">¹⁵https://hpc.guix.info/blog/2024/11/guix-jupyter-0.3.0-released/</footnote>

<footnote n="16">¹⁶https://hpc.guix.info/blog/2022/01/ccwl-for-concise-and-painless-cwl-workflows/</footnote>

<footnote n="17">¹⁷https://www.commonwl.org/</footnote>
ccwl 0.4.0 was released in January 2025¹⁸. ccwl 0.4.0 provides a new js-expression construct to express CWL ExpressionTool class workflows, and comes with more practical examples in the Cookbook section of the manual.

## 2.3 ravanan

ravanan<fnref n="19" /> is a new Common Workflow Language (CWL)<fnref n="20" /> implementation that is powered by GNU Guix and provides strong reproducibility guarantees. ravanan runs CWL workflow descriptions as jobs on a HPC batch system. ravanan uses GNU Guix to manage all packages used by steps in the workflow. In addition, it takes inspiration from GNU Guix and uses a content-addressed store to provide strong caching of intermediate results. Thanks to these, ravanan never runs the same computation twice and its cache never goes stale.

Other salient features of ravanan include:

* One-to-one correspondence between steps in the CWL workflow and jobs on the HPC batch system;

* Clear logging for every job run;

* Jobs never write directly to the shared network filesystem on HPC, which is essential for good performance;

* Jobs never write to /tmp.

Lack of reproducibility and increasingly complex software are a growing concern in scientific workflows. Many of these challenges have been effectively addressed by GNU Guix. ravanan

<footnote n="18">¹⁸https://ccwl.systemreboot.net</footnote>

<footnote n="19">¹⁹https://github.com/arunisaac/ravanan</footnote>

<footnote n="20">²⁰https://www.commonwl.org/</footnote>
takes this to the next level by **seamlessly integrating Guix** with a
well-established standards-based workflow language like CWL.

ravanan had its first release—version 0.1.0—in January
2025.

## 2.4 Ensuring Source Code Availability

In June 2024, we published a **new research paper** entitled *Source Code Archiving to the Rescue of Reproducible Deployment*<sup>21</sup> for the ACM Conference on Reproducibility and Replicability<sup>22</sup>. The paper presents work that has been done since we started connecting Guix with the Software Heritage (SWH) archive<sup>23</sup> five years ago. This is the first paper describing the design and implementation of Disarchive<sup>24</sup>, our ‘tarball’ metadata extraction and recovery tool that, combined with Software Heritage, allows Guix to automatically recover tar.gz and similar source code files, even when they vanished from their original hosting site.

Leading to this publication, we made significant strides in collaboration with the SWH development team to improve Guix's ability to **recover source code**. In particular, Guix can now look up *any* version control checkout by content hash using the new SWH “ExtID” interface. Source code distributed with the Subversion version control tool was previously archived at SWH but unrecoverable by Guix; these changes fill the gap.

Timothy Sample's *Preservation of Guix* reports<sup>25</sup> further allowed us to monitor archival coverage and to identify discrepancies in Guix, Disarchive, and/or SWH. What these reports and the research article show is that, by addressing a number of

<footnote n="21"><sup>21</sup>https://doi.org/10.1145/3641525.3663622</footnote>

<footnote n="22"><sup>22</sup>https://acm-rep.github.io/2024/</footnote>

<footnote n="23"><sup>23</sup>https://guix.gnu.org/en/blog/2019/connecting-reproducible-deployment-to-a-long-term-source-code-archive/</footnote>

<footnote n="24"><sup>24</sup>https://ngyro.com/software/disarchive.html</footnote>

<footnote n="25"><sup>25</sup>https://ngyro.com/pog-reports/latest/</footnote>
issues, Guix as of January 2024 had **94%** of its package source code archived.

## 2.5 Reproducible Research in Practice

In this section, we look at the variety of ways Guix is used to support reproducible research work.

### 2.5.1 Deploying Software from the Past

Ensuring source code availability, as discussed above, is just the first step to supporting reproducible deployment. Guix 1.0.0 was released in 2019²⁶ and our goal is to allow users to travel as far back as 1.0.0 and redeploy (and potentially rebuild) software from there, as in this example:

```
$ guix time-machine -q -commit=v1.0.0 - \
    environment -ad-hoc python2 - python
> guile: warning: failed to install locale
Python 2.7.15 (default, Jan 1 1970, 00:00:01)
[GCC 5.5.0] on linux2
Type "help", "copyright", "credits" or "license" for more info
>>>
```

(The command above uses guix environment, the predecessor of guix shell<fnref n="27" />, which didn't exist back then.) It's only 5 years ago but it's pretty much remote history on the scale of software evolution.

In the best case, the time-machine command above succeeds quickly, thanks to the availability of substitutes (pre-built binaries) for that 2019 software stack. In the worst case, users

<footnote n="26">²⁶https://guix.gnu.org/en/blog/2019/gnu-guix-1.0.0-released/</footnote>

<footnote n="27">²⁷https://guix.gnu.org/en/blog/2021/from-guix-environment-to-guix-shell/</footnote>
have to rebuild some or all of that software because substitutes are unavailable. Unfortunately, while relying on isolated build environments<fnref n="28" /> prevents a number non-reproducibility issues by construction, a couple of issues may still crop up. Chief among them are *time traps*: software build processes that fail after a certain date.

Time traps are rare but not uncommon; historically they affected a few key packages: OpenSSL, GnuTLS, OpenJDK, Python, and more. The problem is that, because of them, attempts to rebuild *today* a software stack that contains one of these packages would fail.

We developed a solution to sidestep time traps and similar build issues<fnref n="29" />. The new **virtual build machine**<fnref n="30" /> service for Guix System provides even more isolation for builds, and control over aspects that the Guix build daemon alone cannot afford. In particular, the service lets users choose the initial date of the virtual build machine and the CPU model it emulates. Once instantiated, Guix transparently offload builds to the virtual build machine, thereby allowing users to rebuild software packages from the past. This is an important improvement for reproducible research, though probably not the end of the road.

<footnote n="28">²⁸https://guix.gnu.org/manual/devel/en/html_node/Build-Environment-Setup.html</footnote>

<footnote n="29">²⁹https://hpc.guix.info/blog/2024/03/adventures-on-the-quest-for-long-term-reproducible-deployment/</footnote>

<footnote n="30">³⁰https://guix.gnu.org/manual/devel/en/html_node/Virtualization-Services.html#Virtual-Build-Machines</footnote>
## 2.5.2 Supporting Artifact Evaluation at SuperComputing 2024

The Reproducibility Initiative<fnref n="31" /> of the International Conference for High Performance Computing, Networking, Storage, and Analysis 2024 (SC24³²) proposed the use of Guix as one of the three official options for the **Artifact Evaluation (AE) process**<fnref n="33" />. Because using the experimental platform Chameleon Cloud<fnref n="34" /> is encouraged for the SC24 AE process, we have also designed and provided a Chameleon Cloud Guix-ready image, named Guix-Ubuntu22.04-CUDA12.3-20240617³⁵.

We refer the blog article<fnref n="36" /> for an overview and to the tutorial<fnref n="37" /> for more information.

## 2.5.3 DIAMOND and Guix

DIADEM<fnref n="38" /> is a French national exploratory program aiming at accelerating the discovery of new materials, launched at the end of 2023 with a budget of 85M€ for 6 years. Its numerical backbone, DIAMOND<fnref n="39" />, is meant to provide a robust infrastructure on which all databases and simulation tools (for computation and visualisation) can rely. For the latter, a strong need was expressed for easily **controllable and reproducible software environments**. For the end user, the chosen solution is **containerization**, with

<footnote n="31">³¹https://sc24.supercomputing.org/program/papers/reproducibility-initiative/</footnote>

<footnote n="32">³²https://sc24.supercomputing.org/</footnote>

<footnote n="33">³³https://sc24.supercomputing.org/program/papers/reproducibilityAppendicesBadges/</footnote>

<footnote n="34">³⁴https://www.chameleoncloud.org/</footnote>

<footnote n="35">³⁵https://chi.tacc.chameleoncloud.org/ngdetails/OS::Glance::Image/3de1f650-091c-4c2b-8bca-73738ddb0b68/</footnote>

<footnote n="36">³⁶https://hpc.gnix.info/blog/2024/07/supporting-academic-conference-artifact-evaluation/</footnote>

<footnote n="37">³⁷https://guix-hpc.gitlabpages.inria.fr/sc24-reproducibility-initiative/</footnote>

<footnote n="38">³⁸https://www.pepr-diadem.fr/</footnote>

<footnote n="39">³⁹https://diamond-diadem.github.io/</footnote>
Apptainer being the preferred candidate due to its HPC-friendly features and its already decent availability on the French HPC grid. For the time being, **Guix acts primarily as a backend** in the project, in order to build such **containers** *via* the guix pack command, *de facto* ensuring long-term reproducibility. At the time of writing this report, dozens of simulation tools covering all scales of materials simulation (see the *code cloud* below) are already available on the dedicated public channel<fnref n="40" />. In addition, a “*package to container image*” conversion pipeline has also been set up, taking full advantage of GitLab-CI to automate the build, update, and deploy processes.

As well as filling out the list of available packages even more, there are also plans to give them better exposure, to escape from their current *backend* status, through extended documentation and upstream inclusion into other popular channels. The underlying hope is to follow the ever-growing Guix trend in the French HPC community (see for instance the NumPEx<fnref n="41" /> project or the MesoNET<fnref n="42" /> initiative, both using Guix) with a ready-to-use, robust set of popular tools for the materials simulation community. Another ongoing work in the DIAMOND project concerns providing ready-to-use workflows (chains of calculations) involving multiple simulation tools using AiiDA<fnref n="43" />, a popular workflow manager in the materials science community.

### 2.5.4 Digital Electronics Design

A new research approach to digital electronics design of FPGAs has recently arisen. This approach, strongly based on Guix, features advanced packaging, versioning and dependency management capabilities for gateware products in the form of VHDL

<footnote n="40">⁴⁰ https://gricad-gitlab.univ-grenoble-alpes.fr/diamond/guix/guix-channel</footnote>

<footnote n="41">⁴¹ https://numpex.org/fr/</footnote>

<footnote n="42">⁴² https://www.mesonet.fr</footnote>

<footnote n="43">⁴³ https://aiida-tutorials.readthedocs.io/en/latest/</footnote>
design units. This departs from traditional methods in this do-
main, based on Tcl or Python scripting as a glue to the several
existing building blocks. Using Guix, it becomes simple to fol-
low a **declarative paradigm to handle firmware dependencies**, in
parallel to creating reproducible software environments, which
guarantees traceability during the full design cycle. Thanks to
last year's updates to the main Guix repository, but also to new
packages in the Guix-Science channel<sup>44</sup> and the Electronics chan-
nel<sup>45</sup>, it is now possible to elaborate and simulate (GHDL and
NVC compilers) designs in VHDL-2008, making use of unit
testing frameworks (vunit) and modern verification libraries
(osvvm), in addition to performing cosimulation (cocotb). It is
also feasible to synthesize and to implement formal verification of
complex logic (yosys) in native VHDL (ghdl-yosys-plugin).

In parallel to all previous additions, Guix’s performance,
flexibility and stability as the base of a continuous integration
framework are currently being investigated in the context of
FPGA verification. This way, sophisticated pipelines using the
Guix Workflow Language (GWL) are being deployed to remote
build facilities on public Git forges. Based on native Guix System
images (for SourceHut), updated daily, or on user-defined cus-
tom Docker containers (for GitLab), several testing pipelines are
being deployed to verify VHDL designs. An introduction to cur-
rent developments was presented by Cayetano Santos<sup>46</sup> during
the latest CNRS/CEA system administration and software engi-
neering conference (15ème Journées Informatiques IN2P3/IRFU).

<footnote>$^{44}$https://codeberg.org/guix-science/guix-science</footnote>

<footnote>$^{45}$https://git.sr.ht/~csantosb/guix-channel-electronics</footnote>

<footnote>$^{46}$https://indico.in2p3.fr/event/31391/contributions/142453/</footnote>
### 2.5.5 Reproducible Multiphysics Simulation and Workflow Runs on HPC Systems

As part of efforts to enable reproducible workflows across diverse HPC environments, a team at the Helmholtz Centre for Environmental Research - UFZ<fnref n="47" /> implemented an AiiDA<fnref n="48" />-based workflow<fnref n="49" /> to create portable, optimized, and **reproducible container images** of the OpenGeoSys<fnref n="50" /> software suite which enable consistent multi-physics simulations and complex workflow runs on various HPC platforms.

Using GNU Guix, the software stack was generated on multiple machines from a source bootstrap, ensuring bit-by-bit reproducibility of the resulting Apptainer images. These images were then **deployed to three HPC systems**: JUWELS<fnref n="51" /> at the Jülich Supercomputing Centre (Tier-0), BARNARD<fnref n="52" /> at TUD Dresden University of Technology (Tier-2), and EVE<fnref n="53" /> at the Helmholtz Centre for Environmental Research - UFZ. The containers were evaluated on all environments through MPI interconnect performance checks, simple MPI-based simulations (3 cores), multi-node MPI-based simulations (96 cores), and a complex Snakemake<fnref n="54" />-based workflow from the AREHS<fnref n="55" /> project running on all cores of a single node. All outputs, including simulation results and plots generated by the Snakemake workflow, are bit-by-bit identical reproduced on all three HPC platforms.

<footnote n="47">⁴⁷ https://www.ufz.de/</footnote>

<footnote n="48">⁴⁸ https://www.aiida.net/</footnote>

<footnote n="49">⁴⁹ https://gitlab.opengeosys.org/bilke/hpc-container-study</footnote>

<footnote n="50">⁵⁰ https://www.opengeosys.org/</footnote>

<footnote n="51">⁵¹ https://www.fz-juelich.de/en/ias/jsc/systems/supercomputers/juwels</footnote>

<footnote n="52">⁵² https://doc.zih.tu-dresden.de/jobs_and_resources/hardware_overview/#barnard</footnote>

<footnote n="53">⁵³ https://www.ufz.de/index.php?en=51499</footnote>

<footnote n="54">⁵⁴ https://snakemake.github.io/</footnote>

<footnote n="55">⁵⁵ https://tu-freiberg.de/en/node/4571/arehs</footnote>
In summary, GNU Guix enabled the **reliable reproduction** of **complex multiphysics simulation** results across multiple HPC systems using only the original input data and the commit hashes of Guix and related package channels to generate the required software environment.

### 2.5.6 Exploring the Impact of Hardware Variability

In a paper presented at ACM REP'24⁵⁶ that received the “Best Paper Award”, we studied the effect of hardware variability on results produced by the FSL FLIRT<fnref n="57" /> application, a widely-used software component in neuroimaging data analyses.

While software containerization solutions such as Docker and Singularity have been deployed to mask the effects of software-induced variability, variations in hardware architectures still impact neuroimaging results in an unclear way. Using the Grid'5000 infrastructure, we studied the effect of nine different CPU models using two software packaging systems (Docker and Guix), and we compared the resulting hardware variability to numerical variability measured with random rounding. Results showed that hardware, software, and numerical variability lead to perturbations of similar magnitudes. For the hardware variability, differences in results were due to differences in micro-architectures, specifically the presence or absence of AVX-2 support. The effect of hardware perturbations on linear registration remained moderate, but might impact downstream analyses when linear registration is used as initialization step for other operations.

<footnote n="56">⁵⁶https://doi.org/10.1145/3641525.3663626</footnote>

<footnote n="57">⁵⁷https://fsl.fmrib.ox.ac.uk/fsl/</footnote>
In the course of this study, we also wrote FSL Guix modules to compile the FSL application and all its dependencies in a reproducible manner. FSL Guix modules are available on a public Git repository<fnref n="58" />.

<footnote n="58">⁵⁸ https://gitlab.in2p3.fr/reprovip/reprovip-guix</footnote>
# 3

# Cluster Usage and Deployment

The sections below highlight the experience of cluster administration teams and report on tooling developed around Guix for users and administrators on HPC clusters.

## 3.1 MPI Performance Portability

MPI performance portability — achieving optimal MPI performance on all supported hardware — is a long-standing goal of the Guix-HPC project. Progress has been made towards the achievement of this goal.

Support for the Cray/HPE Slingshot interconnect in Open MPI through libfabric/libcxi was added as soon as the code was open-sourced<fnref n="59" />.

<footnote n="59">⁵⁹ https://hpc.guix.info/blog/2024/11/targeting-the-crayhpe-slingshot-interconnect/</footnote>
The libfabric package definition has been improved to support a broader variety of network interconnects: it now supports Intel Omni-Path through PSM2, Infiniband, iWarp and RoCE through the Linux Verbs API. The MPICH implementation of MPI can now use these interconnect drivers.

CUDA support has been improved: Open MPI has now GPUDirect support and the nccl library is now available.

Tests have been carried out on French Tier-1 supercomputers (Adastra and Jean-Zay) to ensure proper performance was achieved by the MPI software stack. Specifically, NVIDIA GPUDirect/NCCL and ROCm RCCL support has been tested using the OSU Micro Benchmarks suite.

## 3.2 Tier-0 and Tier-1 Supercomputers

Reproducible software deployment using Guix on French Tier-1 and EuroHPC Tier-0 machines is one of the goals of the Development and Integration work package<sup>60</sup> of NumPEx<sup>61</sup>, the French exascale HPC program, the main constraint being that Guix is not available on these machines.

Progress has been made towards this goal, particularly on TGCC's Irène cluster, where Guix is now able to produce Docker container images suitable for pcocc<sup>62</sup>, TGCC's container deployment tool.

Guix offers different ways of generating a software stack that can then be deployed on a supercomputer:

* Singularity/Apptainer image generation using guix pack -f squashfs

* Relocatable binary archive generation using guix pack -RR

<footnote n="60"><sup>60</sup> https://numpex.org/exadi-development-and-integration/</footnote>

<footnote n="61"><sup>61</sup> https://numpex.org/</footnote>

<footnote n="62"><sup>62</sup> https://github.com/cea-hpc/pcocc</footnote>
* Docker image generation using guix pack -f docker

Below is a summary of the techniques that have been validated on the different target machines, French national supercomputers (so-called “Tier-1”) and EuroHPC supercomputers (“Tier-0”):

* Jean-Zay (IDRIS): Singularity images and relocatable binary archives.

* Adastra (CINES): Relocatable binary archives (Singularity, which is also available, has not been tested but should work out-of-the box).

* Irène (TGCC): Docker images (currently validated for single processes only), both on x86_64 and aarch64 CPU architectures.

* LUMI (EuroHPC): Singularity images (currently validated on a single node).

As an example of successful application of these techniques, AVBP<sup>63</sup>, a physics simulation code that has been packaged in Guix, has been run on Adastra on up to 1,600 MPI processes (80 processes per node on 20 nodes) using a relocatable binary archive and on Jean-Zay (up to 256 MPI processes, on 256 nodes with a single process per node) using a Guix generated Singularity image.

A number of **tutorials** related to reproducible software deployment on Tier-1 and Tier-0 clusters have been published<sup>64</sup> by the NumPEx Development and Integration work package.

Future work will be needed to validate multi-processes/multi-nodes on TGCC and EuroHPC machines.

<footnote n="63"><sup>63</sup>https://www.cerfacs.fr/avbp7x/index.php</footnote>

<footnote n="64"><sup>64</sup>https://numpex-pc5.gitlabpages.inria.fr/tutorials/</footnote>
## 3.3 Pangenome Genetics Research Cluster at UTHSC

At UTHSC, Memphis (USA), we are running a 16-node large-memory Octopus HPC cluster<sup>65</sup> (438 real CPU cores) dedicated to pangenome and genetics research. In 2024, the storage doubled up to a 400 TB Lizardfs SSD fiber-optic connected distributed network storage. We aim to replace the unmaintained Lizardfs software with a more efficient Ceph distributed storage.

Notable about this HPC cluster is that it is *administered by the users themselves*. Thanks to Guix, **we install, run and manage the cluster as researchers** — and roll back in case of a mistake. UTHSC IT manages the infrastructure—i.e., physical placement, electricity, routers and firewalls — but beyond that there are no demands on IT. Thanks to out-of-band access, we can completely (re)install machines remotely. Octopus runs Guix on top of a minimal Debian install and we are experimenting with pure Guix virtual machines and nodes that can be run on demand. Almost all deployed software has been packaged in Guix and can be installed on the head-node by regular users on the cluster without root access. This same software is shared through NFS on the nodes. See the guix-bioinformatics<sup>66</sup> channel for all deployment configuration.

Thanks to Collin Doering and the wider Guix community we now have Guix on a bare metal machine that acts as a build 'farm' for Guix North America<sup>67</sup> that serves the continent and also services our HPC. Collin's blog goes into more detail in his post Setup of a Simple Guix Build Farm and Substitute Server<sup>68</sup>.

<footnote n="65"><sup>65</sup>http://genenetwork.org/facilities/</footnote>

<footnote n="66"><sup>66</sup>https://git.genenetwork.org/guix-bioinformatics/</footnote>

<footnote n="67"><sup>67</sup>https://cuirass.genenetwork.org</footnote>

<footnote n="68"><sup>68</sup>https://www.blog.rekahsoft.ca/posts/guix-na-build-farm.html</footnote>
## 3.4 Supporting RISC-V

RISC-V represents advanced open source hardware and is making inroads with HPC, e.g. in Barcelona<fnref n="69" /> and with the new Barcelona Supercomputing Center Sargantana chip. EU investments in RISC-V are coming online<fnref n="70" />. Other countries are also investing deeply into RISC-V including China<fnref n="71" />.

Christopher Batten (Cornell) and Michael Taylor (University of Washington) are in charge of creating the NSF-funded RISC-V supercomputer with 2,000 cores per node and 16 nodes in a rack (NSF PPoSS grant 2118709), targeting Guix driven pangenomic workloads by Erik Garrison, Arun Isaac, Andrea Guarracino, and Pjotr Prins. The aim is to have a prototype running in 2025. The supercomputer will incorporate Guix and the GNU Mes bootstrap, with input from Arun Isaac, Efraim Flashner and others. NLNet<fnref n="72" /> funds RISC-V support for the Guix riscv64 target from Efraim Flashner and the GNU Mes RISC-V bootstrap project with Ekaitz Zarraga, Andrius Štikonas, and Jan Nieuwenhuizen. The RISC-V bootstrap is fully working<fnref n="73" /> and can be adopted by Linux distributions!

<footnote n="69">⁶⁹https://riscv.org/blog/2023/07/risc-v-summit-europe-2023-highlights-from-barcelona/</footnote>

<footnote n="70">⁷⁰https://www.hpcwire.com/2022/12/16/europe-to-dish-out-e270-million-to-build-risc-v-hardware-and-software/</footnote>

<footnote n="71">⁷¹https://www.theregister.com/2025/01/08/chinese_riscv_project_teases_2025/</footnote>

<footnote n="72">⁷²https://nlnet.nl</footnote>

<footnote n="73">⁷³https://ekaitz.elenq.tech/bootstrapGcc15.html</footnote>
# Outreach and User Support

Guix-HPC is in part about “spreading the word” about our approach to reproducible software environments and how it can help further the goals of reproducible research and high-performance computing development. This section summarizes talks and training sessions given this year.

## 4.1 Articles

The following refereed articles about Guix were published:

* Ludovic Courtès, Timothy Sample, Simon Tournier, and Stefano Zacchiroli, *Source Code Archiving to the Rescue of Reproducible Deployment*<sup>74</sup>, 2nd ACM Conference on Reproducibility and Replicability (ACM REP), June 2024

* Gael Vila, Emmanuel Medernach, Ines Gonzalez Pepe, Axel Bonnet, Yohan Chatelain, Michael Sdika, Tristan Glatard, and Sorina Camarasu Pop *The Impact of Hardware*

<footnote n="74"><sup>74</sup>https://doi.org/10.1145/3641525.3663622</footnote>
*Variability on Applications Packaged with Docker and Guix: a Case Study in Neuroimaging*<sup>75</sup>, 2nd ACM Conference on Reproducibility and Replicability (ACM REP), June 2024

* Simon Tournier, (Re)Déploiement de conteneurs et machines virtuelles avec Guix<sup>76</sup> Journées Réseaux de l'Enseignement et de la Recherche (JRES), Dec. 2024

## 4.2 Talks

Since last year, we gave the following talks at the following venues:

* *RISC-V Bootstrapping in Guix and Live-Bootstrap*<sup>77</sup>, FOSDEM, February 2024 (Ekaitz Zárraga)

* *Making reproducible and publishable large-scale HPC experiments*<sup>78</sup>, FOSDEM, February 2024 (Philippe Swartvagher)

* *Reproducibility and Performance: Why Choose?*<sup>79</sup>, 52nd ORAP Forum<sup>80</sup>, March 2024 (Ludovic Courtès)

* *Dependable Software Deployment with Guix*<sup>81</sup>, International Post-Exascale Workshop (InPEx), June 2024 (Ludovic Courtès)

<footnote n="75"><sup>75</sup>https://doi.org/10.1145/3641525.3663626</footnote>

<footnote n="76"><sup>76</sup>https://2024.jres.org/programme#modal-135</footnote>

<footnote n="77"><sup>77</sup>https://archive.fosdem.org/2024/schedule/event/fosdem-2024-1755-risc-v-bootstrapping-in-guix-and-live-bootstrap/</footnote>

<footnote n="78"><sup>78</sup>https://archive.fosdem.org/2024/schedule/event/fosdem-2024-2651-making-reproducible-and-publishable-large-scale-hpc-experiments/</footnote>

<footnote n="79"><sup>79</sup>https://www.youtube.com/embed/gzF1IMLBRLw&t=1h36m1s</footnote>

<footnote n="80"><sup>80</sup>http://orap.irisa.fr/52ieme-forum-reproductibilite/</footnote>

<footnote n="81"><sup>81</sup>https://inpex.science/workshop/the-2024-inpex-workshop/</footnote>
* Reproducibility and replicability of computer simulations<sup>82</sup>, Keynote at ACM REP 2024<sup>83</sup>, June 2024 (Konrad Hinsen)

* Source Code Archival To The Rescue Of Reproducible Deployment<sup>84</sup>, at ACM REP 2024<sup>85</sup>, June 2024 (Simon Tournier)

* Reproducibilité des résultats de recherche à l'aide de GNU/Guix<sup>86</sup>, webcast<sup>87</sup>, 15èmes Journées Informatiques IN2P3/IRFU, Sep. 2024 (Cayetano Santos)

* Continuous Integration & Continuous Delivery for HPC with Guix, Webinar of the CASTIEL 2 European Project<sup>88</sup>, Sep. 2024

* Reconciling high-performance computing with the use of third-party libraries?<sup>89</sup>, Journées Calcul et Données (JCAD), Nov. 2024 (Emmanuel Agullo)

* (Re)Déploiement de conteneurs et machines virtuelles avec Guix<sup>90</sup> Journées Réseaux de l'Enseignement et de la Recherche (JRES), Dec. 2024 (Simon Tournier)

<footnote n="82"><sup>82</sup>https://khinsen.net/keynote-acm-rep-24/</footnote>

<footnote n="83"><sup>83</sup>https://acm-rep.github.io/2024/</footnote>

<footnote n="84"><sup>84</sup>https://archive.softwareheritage.org/swh:1:cnt:33c596794d8435666bf98249b2022d1rep-2024/talk.20240619.pdf</footnote>

<footnote n="85"><sup>85</sup>https://acm-rep.github.io/2024/</footnote>

<footnote n="86"><sup>86</sup>https://indico.in2p3.fr/event/31391/contributions/142453/</footnote>

<footnote n="87"><sup>87</sup>https://webcast.in2p3.fr/video/reproducibilite-des-resultats-de-recherche-a-laide-de-gnu-guix</footnote>

<footnote n="88"><sup>88</sup>https://eurohpc-ju.europa.eu/research-innovation/our-projects/castiel-2_en</footnote>

<footnote n="89"><sup>89</sup>https://jcad2024.sciencesconf.org/</footnote>

<footnote n="90"><sup>90</sup>https://2024.jres.org/programme#modal-135</footnote>
* *Environnement logiciel reproductible, à quelle échéance ?*<sup>91</sup>, 2ème Journée d'Étude ARDoISE, Dec. 2024 (Simon Tournier)

* *Reproducible Software Deployment with Guix in HPC*, Seminar at CERFACS<sup>92</sup>, Dec. 2024 (Ludovic Courtès)

* *Déployer AVBP avec Guix*, Seminar at CERFACS<sup>93</sup>, Dec. 2024 (Romain Garbage)

* *Reproducible Software Deployment with GNU Guix*, Seminar of the ADAC<sup>94</sup> working group on Portability, Sustainability, and Integration, Jan. 2025 (Ludovic Courtès)

* At the Barcelona Supercomputing Center (BSC), Arun Isaac and Pjotr Prins presented their work<sup>95</sup> on Guix for HPC, including ravanan<sup>96</sup>, an optimized and reproducible Common Workflow Language (CWL) runner.

* ... and the talks of the November 2024 Guix-HPC Workshop<sup>97</sup>

<footnote n="91"><sup>91</sup>https://archive.softwareheritage.org/swh:1:cnt:a9f6cf68206d4928c9c6598c94a682ff7beb3b420241217.pdf</footnote>

<footnote n="92"><sup>92</sup>https://cerfacs.fr</footnote>

<footnote n="93"><sup>93</sup>https://cerfacs.fr</footnote>

<footnote n="94"><sup>94</sup>https://adac.ornl.gov/</footnote>

<footnote n="95"><sup>95</sup>https://www.bsc.es/research-and-development/research-seminars/sors-genomics-workloads-the-future-now</footnote>

<footnote n="96"><sup>96</sup>https://git.systemreboot.net/ravanan/about/</footnote>

<footnote n="97"><sup>97</sup>https://hpc.guix.info/events/2024/workshop/</footnote>
## 4.3 Events

As has become tradition, Pjotr Prins and Manolis Ragkousis spearheaded the organization of the “Declarative and minimalistic computing” track<fnref n="98" /> at FOSDEM 2024, which was home to several Guix talks, along with the satellite Guix Days where 50 Guix contributors gathered.

As a followup to the workshop that took place in November 2023, we organized a Mini Workshop on Guix in HPC<fnref n="99" />. The event took place in Bordeaux, France, with remote attendance as well, right after JCAD, the French-speaking conference for HPC practitioners. About forty people joined on site and a dozen more on-line. The aim of the workshop was twofold. The first half day was dedicated to the users point of view and how to manage calculus with Guix in various contexts. During the second half day, presentations and discussions focused on the use of Guix as a package manager in mesocentres. Speakers showed the use of Guix in HPC in a variety of disciplines—from material physics to linear algebra and system administration—by PhD candidates, research software engineers, and senior system administrators. In addition to these talks, a panel allowed HPC center engineers to share their experience setting up Guix on clusters and discuss pain points and issues that would need to be addressed for broader adoption.

## 4.4 Training Sessions

* Café Guix

Café Guix is an informal **monthly discussion** about the Guix software environment manager. Students, researchers, system administrators, support staff from laboratories or

<footnote n="98">⁹⁸ https://archive.fosdem.org/2024/schedule/track/declarative-and-minimalistic-computing/</footnote>

<footnote n="99">⁹⁹ https://hpc.guix.info/events/2024/workshop/</footnote>
computing centres — everyone is welcome to join in this one-hour monthly meeting to discuss questions they have about Guix and its use in the broadest sense. Each session has a specific level of difficulty, clearly indicated in the program<fnref n="100" />. Some sessions are designed for beginners and others for more experienced users. For example, in 2024, entry-level topics included an introduction of Guix from a user point of view and the presentation of basic commands. We also covered more advanced topics such as the use of G-exp and the different stages in the life of a package.

* MOOC “Reproducible Research II: Practices and tools for managing computations and data”

A first session<fnref n="101" /> of this new online course (MOOC) has been run from 16 May to 26 September 2024. One of its three modules is about reproducible computational environments. It includes a detailed introduction to Guix, with exercises, and it uses Guix to ensure the reproducibility of its main example, a workflow for detecting sunspots in a database of thousands of images of the sun. A revised second session is planned for April 2025.

* MDC seminar in the series “Research Data Management: Monday seminars on Reproducibility”: “Software reproducibility with Guix”

This seminar session took place on 22 April 2024 at the MDC for an audience of bioinformatics researchers. In this session we looked at the problem of computational reproducibility, clarified the role (and the limitations) of containers in the realm of reproducibility, and introduced

<footnote n="100">¹⁰⁰https://hpc.guix.info/events/2024-2025/café-guix/</footnote>

<footnote n="101">¹⁰¹https://www.fun-mooc.fr/en/courses/reproducible-research-ii-practices-and-tools-for-managing-comput/</footnote>
the declarative approach to reproducible and portable software environments using Guix.
5

Personnel

GNU Guix is a collaborative effort, receiving contributions from more than 90 people every month—a 50% increase compared to last year. As part of Guix-HPC, participating institutions have dedicated work hours to the project, which we summarize here.

* CNRS: 0.2 person-year (Konrad Hinsen)

* Inria: 3.5 person-years (Ludovic Courtès and Romain Garbage; contributors to the Guix-HPC, Guix-Science, and Guix channels: Emmanuel Agullo, Julien Castelnau, Luca Cirrottola, Marc Fuentes, Gilles Marait, Florent Pruvost, Philippe Swartvagher; system administrator in charge of Guix on the PlaFRIM and Grid'5000 clusters: Julien Lelaurain)

* University of Tennessee Health Science Center (UTHSC): 3+ person-years (Efraim Flashner, Collin Doering, Bonface Munyoki, Fred Muriithi, Arun Isaac, Andrea Guaracino, Erik Garrison and Pjotr Prins)
* GRICAD : CNRS 0.5 person-year (Benjamin Arrondeau and Pierre-Antoine Bouttier), UGA 0.1 person-year (Céline Acary-Robert)

* Max Delbrück Center for Molecular Medicine in the Helmholtz Association (MDC): 2 person-years (Ricardo Wurmus, Navid Afkhami, and Mădălin Ionel Patraşcu)

* Université Paris Cité: 0.5 person-year (Simon Tournier)
Computational reproducibility is still widely regarded as too difficult to achieve. In 2024, we have continued to lower the barriers, by improving the Guix itself and by integrating it with other foundational tools of computational science: workflow managers and widely deployed container runtimes. Integration with another foundational tool, continuous integration on software forges, remains unsatisfactory so far, but is being worked on. We have also demonstrated that reproducibility is not in contradiction with striving for performance. Scientists from a growing number of domains are adopting Guix, as illustrated by the introduction of new packages in the Guix-Science channel, targeting domains such as physics, neuroscience, or electronics design.

So far, we have focused on addressing the needs of two groups of actors in HPC:

* HPC users—i.e., researchers and engineers who use HPC in research projects;
* administrators of HPC machines.

There are at least two further groups of actors relevant for HPC:

* developers of scientific software deployed on HPC systems;

* vendors of HPC machines and the associated systems software.

What Guix-HPC could do for these two groups is provide support and training on reproducibility issues. Time traps, for example, should be avoided (or removed) by the upstream projects, rather than worked around at the packaging and deployment stages. Prevention is better than cure. But most software developers today are unfamiliar with the concept of time traps.

A much more ambitious challenge is working with developers of language-specific packaging and distribution systems in view of enhanced integration with system-level packaging approaches such as Guix. The JavaScript ecosystem is perhaps the best-known example of an ecosystem whose packaging habits make it difficult to build software reproducibly from source code (see this ten-year-old rant<fnref n="102" /> for an example). The Julia and Rust ecosystems are taking a similar direction. With the growing popularity of Julia and Rust in scientific computing, new obstacles to reproducibility are therefore appearing on the horizon.

<footnote n="102">¹⁰² https://dustycloud.org/blog/javascript-packaging-dystopia/</footnote>
<figure><img src="image_3.png" /></figure>
<figure><img src="image_4.png" /></figure>

https://hpc.guix.info/