Reproducible HPC Software Installation on Cray Systems with EasyBuild
EasyBuild is a framework for building and installing (scientific) software on HPC clusters, implemented in Python and available under the GPLv2 FOSS license. It has served HPC support teams well on standard Linux/x86 systems since 2012.
More recently, interest has grown to also employ EasyBuild on Cray systems, where the Cray Programming Environment (PE) not only provides common tools (compilers, ...) and libraries (MPI, BLAS/LAPACK, FFTW, ...), but also tuned installations of 3rd party libraries like HDF5, netCDF and PETSc. The Cray PE consists of an extensive stack of environment modules, providing a familiar yet complex working environment of users.
To leverage the Cray PE a couple of enhancements had to be made to EasyBuild, including support for using 'external' modules, and defining Cray-specific compiler toolchains. In addition, the way in which EasyBuild deals with environment modules had to be carefully revisited, since standard operations like 'module purge' are not supported by the Cray PE.
This work has led to the use of EasyBuild in production on the largest Cray supercomputer in Europe, the Piz Daint system at the Swiss National Supercomputing Centre.
In this talk, we will outline how Cray systems are different from standard HPC systems, motivate the need for a tool like EasyBuild despite the presence of Cray PE, and show how EasyBuild was tweaked to support reproducible software installations on Cray systems.
We believe this is interesting success story of how FOSS has significantly enhanced the software environment on a multi-million dollar production system.