from Hacker News

Ask HN: Nix(OS) for HPC?

by HMH on 11/21/21, 11:09 PM with 5 comments

Recently I helped a friend getting some scientific software running on an HPC system a little on the smaller side. The software is written in C++ and uses cmake for building. And to be honest, the experience was rather subpar.

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

  • by arisbe__ on 11/21/21, 11:54 PM

    I can't answer your question as I am not informed about the subject, but I can add that I am aware that Guix/GuixSD is used for some HPC (see https://hpc.guix.info/about/). Perhaps Nix/NixOS is as well.

    If you don't get an answer here try https://nixos.org/community/index.html.

  • by zekrioca on 11/22/21, 12:40 AM

    Why wouldn’t any container system work? Many such systems these days support unprivileged containers and near zero overhears, which are basically the main concerns in HPC.