HPC goodies in Guix 0.14.0
Ludovic Courtès — December 8, 2017
Version 0.14.0 of Guix was announced yesterday. In this post we look at the many goodies that made it into Guix during this release cycle.
Over the 1,200+ packages added since the 0.13.0 release are many noteworthy HPC additions.
Dave Love of the University of Manchester made a number of contributions on the high-performance networking side:
- Dave added several InfiniBand packages, added PSM support in libfabric.
- Open MPI gained support for RDMA, libfabric, and PSM.
- The Intel MPI Benchmarks are now available as a package.
- The size of the closure of the
openmpipackage with all its dependencies was significantly reduced. This is particularly appreciable if you’re building application bundles with
The collection of HPC profiling tools has grown:
Linear algebra packages have seen some changes:
- LAPACK was upgraded to 3.7.1, though 3.5.0 has been kept around for packages that are not ready for the latest API.
- Scotch is now
built in 64-bit mode on 64-bit machines, and the new
scotch32package provides a 32-bit version for applications that need it.
- BLIS has been
added. Since it does not support instruction set selection at
run-time yet, we created
several packages specialized for each ISA extension:
blis-haswellis the variant optimized for Haswell CPUs,
blis-knlis the KNL variant, and so on. This is simplified by the implementation of a high-level
make-blisfunction that returns specialized packages.
As far as numerical simulation is concerned:
- The OpenFOAM C++ computational fluid dynamics package was contributed by Paul Garlick of Tourbillion Technology.
There’s been a lot of activity in bioinformatics, leading to a total of almost 300 bioinformatics packages, notably with the addition of the following packages:
- many, many R packages (428 R package are available today).
Changes to core Guix relevant to HPC include:
--listencommand-line option that we covered recently, and which is handy when installing Guix cluster-wide.
- The new
guix import jsoncommand provides a smooth way for newcomers to get started writing new package definitions.
- aarch64 portability fixes were contributed by Eric Bavier of Cray, Inc.
Enjoy the new release!