Nix is an ecosystem of packages with the functional Nix programming language at its core. It is used to describe software packages, their dependencies and options in a declarative manner. Given a description of a package, the Nix package manager produces the exact same software, complete with dependencies, on every installation.
This appeals to researches who strive to have reproducible software builds and want to make the installation of their software as easy as possible. Scientific software often has a lot of dependencies of highly optimized software packages. These are typically managed as modules by administrators of supercomputers like the SuperMUC-NG at the LRZ in Garching. It uses a module system like lmod to dynamically load and unload software of specific versions.
In this work we want to investigate how an existing module system can be transparently migrated to Nix. The first central task would be to install the packages' software via the Nix package manager. Depending on the interest of the candidate, one can investigate further:
This work can be offered as a Master or Bachelor thesis.
module
wrapper for Nix