High performance compute clusters in a scientific environment are rather specialized environments,
that provide highly specialized software packages for scientists.
Performance optimizations, specific to the given cluster, are an important part of the setup.
In many places, these packages are still hand compiled, hand tested and
made available via the "modules" system, which makes upgrading a package a difficult process.
To the experienced Nix user, it may be obvious that Nix can solve problems with providing software
to users while, at the same time, also providing a path to reproducibility of scientific results.
We thus have developed the NixOS-QChem overlay to provide computational chemistry software packages
in a reproducible, transferable, and customizable way. The overlay provides more than 30
chemistry related software packages, as well as optimized versions of upstream nixpkgs packages.
In this talk, I will give an overview over the overlay and how we have adapted it for a scientific
compute environment, as well as the challenges that we have faced while packaging some more exotic packages.
The focus here will be mainly on the Nix related aspects and lessons learned that apply also to other scientific packages.
Resources:
* Link to the overlay: https://github.com/markuskowa/NixOS-QChem
* We have published a paper in a scientific journal, describing the approach:
M. Kowalewski, P. Seeber, “Sustainable Packaging of Quantum Chemistry Software with the Nix Package Manager”, [Int. J. Quantum Chem., **122**, e26872](https://doi.org/10.1002/qua.26872) (2022).