What if there was a way to avoid having to install a broad range of scientific software from scratch on every HPC cluster or cloud instance you use or maintain, without compromising on performance?
The European Environment for Scientific Software Installations (EESSI, pronounced as “easy”) is a brand new collaboration between different European HPC sites & industry partners, with the common goal to set up a shared repository of scientific software installations that can be used on a variety of systems, regardless of which flavor/version of Linux distribution or processor architecture is used, or whether it’s a full size HPC cluster, a cloud environment or a personal workstation.
The concept is heavily inspired by the Compute Canada software stack, which was presented at PEARC’19 under the title “Providing a Unified Software Environment for Canada’s National Advanced Computing Centers”.
It consists of three layers:
- a distributed filesystem layer leveraging the established CernVM-FS technology (https://cernvm.cern.ch/portal/filesystem).
- a compatibility layer using Gentoo Prefix (https://wiki.gentoo.org/wiki/Project:Prefix) to install a limited set of “system” packages.
- a software layer hosting scientific software installations that were built for different processor architectures, where archspec (https://github.com/archspec/archspec), EasyBuild
(https://easybuilders.github.io/easybuild) and Lmod (https://github.com/TACC/Lmod) are leveraged.
In this talk, we will present how the EESSI project grew out of a need for more collaboration to tackle the challenges in the changing landscape of scientific software and HPC system architectures. The project structure will be explained in more detail, covering the motivation for the layered approach and the choice of tools, as well as the lessons learned from the Compute Canada approach. Finally, we will outline the goals we have in mind and how we plan to achieve them going forward.
For more information about the EESSI project:
* website: https://www.eessi-hpc.org
* GitHub: https://github.com/EESSI
* documentation: https://eessi.github.io/docs
* Twitter: https://twitter.com/eessi_hpc