Spack is a package manager for scientific computing, with a rapidly growing open source community. Spack has over 400 contributors from academia, industry, and laboratories across the world, and it is used to manage software releases for the U.S. Exascale Computing Project. At this roundtable, Spack core developers will give updates on the community, and on new features, container integration, and collaboration efforts with facilities, HI, E4S, and SDK teams. Sites using Spack will describe their experiences, and we will open the floor for discussion. All are invited to provide feedback, request features, and discuss future directions. Help us make installing HPC software simple!
HPC software is becoming increasingly complex. The largest applications require over 100 dependency libraries, and they combine interpreted languages like Python with C, C++, and Fortran libraries. To achieve good performance, developers tune for multiple compilers, build options, and implementations of dependency libraries like MPI, BLAS, and LAPACK. The space of possible build configurations is combinatorial, and developers waste countless hours rebuilding software instead of producing new scientific results.
Spack (https://spack.io) is a package manager for scientific computing. It aims to reduce the complexity of building and installing HPC software on laptops, clusters, and the most powerful supercomputers in the world. There are over 3,300 package recipes in the Spack mainline repository. Spack has a rapidly growing open source community from across the world, with over 400 contributors from academia, industry, and laboratories. End users install complex HPC applications; developers manage dependencies for themselves and for their team; and the largest supercomputing sites in the world use Spack to deploy software for thousands of users. Spack is also the focus of a US/Japan collaboration on the Fugaku Supercomputer, and it is being used to manage software releases for the U.S. Exascale Computing Project.
The goals of this BOF are 1) to inform users within ECP about recent and upcoming developments, 2) to connect sites and developers using Spack to manage software, 3) to solicit feedback to guide future directions, and 4) to build the Spack community within ECP.
In the past, the Spack BOF has been well attended at the ECP meeting, and it has been a great source of user feedback for us. In particular, we have used feedback from past BOFs to guide our feature development.
This year, we would like to highlight a number of new features and integrations in Spack that have been impactful across multiple areas of ECP. These include integration with the GitLab continuous integration system, build pipelines for users and facilities, Spack Stacks (a new mechanism for facility deployment), and fine-grained microarchitecture builds, and container integration. We would also like to highlight our work across NNSA and SC labs.