Guix - A functional package manager

I’m starting to hear more and more about Guix, which seems a really interesting piece of software.
Apparently it’s already in use by some universities on HPC: https://hpc.guix.info/blog/2019/05/gnu-guix-1.0-foundation-for-hpc-reproducible-science/
Is anyone using it or thinking to use it in the future? I’d be interested to know more in that case :slightly_smiling_face:

1 Like

This is a good comparison of package managers focused towards HPC sites from 2018 : https://archive.fosdem.org/2018/schedule/event/installing_software_for_scientists/ (though some things have changed since in particular spack has gotten much better with a lot of features for isolated envs, CI integration and better DL/ML stack support!).

As an active contributor to spack and as someone who is attempting to push the usage of spack on my campus cluster I’m biased toward it so I personally favor spack and easybuild as they compile all packages from source and have a large community that actively shares knowledge for package builds (which means less time spend on searching the web for obscure patches as these are already in the package manager repositories). With newer CPU’s compilation is much faster than older ones so there is really no speed penalty and all the benefits when compared to installing binary packages.

1 Like

@kir0ul I took a look and Guix would definitely be something I’d love to try - I looked at the install and it requires sudo, and (at least for testing) I’m not one to want to install things to my local machine, and I’d want a more “real life” testing scenario on a shared resource anyway. So to answer your question, this is something that I’d hugely want to test (it uses Docker and Singularity!) but I don’t have the means to, because it won’t be installed or tested anytime soon on our resources. I did chat with my colleagues however, and we talked about how the team behind it is very good (Inria) but also that they are using a derivative of lisp (sgm) that would make it challenging for others in the scientific community without more software expertise to jump into helping with development.

So to summarize my sentiments here:

  1. This is definitely worth testing!
  2. +1 points for being successful based on the maintainers, -1 based on the language
  3. A larger point for discussion is how challenging it is for RSEs like myself to test new software (in context of a shared cluster resource) and beyond our local machines. Given that the strategy must be conservative with respect to installing software, installing for testing isn’t something that happens often, and nobody seems to have the time to think about development or testing environments. Can the community put heads together to think of a solution?

@sajid Thanks, very interesting talk! I honestly didn’t know about Spack before you mentioned it… :grimacing:

@vsoch About the Scheme language used with Guix, people seems to say it’s easy to work with, or at least quite easier than the language used by Nix: https://news.ycombinator.com/item?id=12337488

I found this article on Guix applied to Jupyter notebooks also quite interesting: https://hpc.guix.info/blog/2019/10/towards-reproducible-jupyter-notebooks/