Ask HN: Nix(OS) for HPC?
All HPC systems I have worked on have been using Lmod [1] to manage the environment and enable building with say Intel's compiler or some specific MPI version.
Now one of the concrete problems I hit was the following: Loading the latest version of cmake using Lmod pulls in the latest version of gcc's libstdc++ as cmake is dynamically linked against that. But if you try to build said software with the Intel toolchain which pulls an older version of libstdc++ into the environment, suddenly cmake breaks with a rather cryptic symbol not found error.
This is what got me thinking: On HPC systems you typically need to have lots of libraries/software with oftentimes many and conflicting versions installed, so your users can use what they need. I have not yet tried Nix(OS) myself, but what I described does very much sound like the problem it is intended to solve.
Thus my question: Has anyone tried Nix(OS) on an HPC system, how did it go? Otherwise, are there (better) alternatives to Lmod?
[1]: https://lmod.readthedocs.io
5 comments
[ 2.6 ms ] story [ 25.6 ms ] threadIf you don't get an answer here try https://nixos.org/community/index.html.
But perhaps someone can refute this?
From what I’ve been reading at OpenHPC about Slurm and friends, you wouldn’t normally waste deployment time doing the compile operation on each node, you could but it’d be inefficient to have 1000 nodes all compile at the same time instead of mounting your share and pulling down the executable… Which can be built in any of your favorite build environments. I’ve seen some stuff most recently about writing in Python and using DSL compile tool chains to prep an executable that’s much faster than dropping Python on the cluster. That’s something you set up in a Docker environment or Git action mess that I don’t understand.