What is it about?
Running scientific software on HPC clusters typically involves wrestling with environment modules, manual compilation, and fragile dependency chains. When a calculation works on one cluster but fails on another, the cause is almost always a difference in the software environment -- different compiler versions, library paths, or build flags. Nix is a package manager that solves this by describing the entire software environment declaratively. Every package is built in isolation with explicit dependencies, and the resulting environment is bit-for-bit reproducible. We demonstrated how to use Nix on HPC systems without administrator access, building complete scientific toolchains (compilers, MPI, domain-specific codes) in user space. The approach eliminates redundancy: instead of maintaining separate module files and build scripts for each cluster, a single Nix expression produces identical environments everywhere.
Featured Image
Photo by Javier Miranda on Unsplash
Why is it important?
Reproducibility in computational science requires reproducing the software environment, not just the input files. Environment modules, the standard HPC approach, provide no guarantees about reproducibility across systems or over time. Nix provides those guarantees. The same flake.nix file that builds on a laptop builds identically on any cluster with Nix installed. This makes it possible to share computational workflows as self-contained, reproducible artifacts. We showed that the performance overhead of Nix-built software is negligible (within measurement noise of manually compiled equivalents), addressing a common concern from HPC administrators.
Perspectives
I wrote this after spending years as both an HPC user and systems specialist at the Icelandic national cluster. The amount of time researchers (including myself) spent debugging software installations was absurd. Module systems help, but they do not solve reproducibility. Nix was the answer I had been looking for. The learning curve is real, but once a Nix expression works, it works everywhere. I packaged several scientific codes (ORCA, LAMMPS, GROMACS) as Nix derivations and ran them on multiple clusters to verify reproducibility. The paper also reflects my broader interest in reproducible research infrastructure, which led to contributions to the Nix ecosystem for scientific computing.
Rohit Goswami
University of Iceland
Read the Original
This page is a summary of: Reproducible High Performance Computing without Redundancy with Nix, November 2022, Institute of Electrical & Electronics Engineers (IEEE),
DOI: 10.1109/pdgc56933.2022.10053342.
You can read the full text:
Contributors
The following have contributed to this page







