Authors: Todd Gamblin (Lawrence Livermore National Laboratory (LLNL)), Gregory Becker (Lawrence Livermore National Laboratory (LLNL)), Phil Sakievich (Sandia National Laboratories), Alec Scott (Lawrence Livermore National Laboratory (LLNL)), Kathleen Shea (Lawrence Livermore National Laboratory (LLNL))
Abstract: Spack is an open-source package manager for scientific computing with a rapidly growing community of over 1,500 contributors. This year, Spack has undergone some of the most significant changes in its 12-year history, with the release of v1.0. This BoF will feature an update from developers, covering 1.0’s enhanced compiler dependency model, improved parallelism, and stable package API. We’ll announce version 1.1 with performance and usability improvements, and we will conduct a poll to understand how users have received v1.0. Finally, we’ll open the floor for questions. Help us make installing HPC software simple!
Long Description: HPC software is incredibly complex. The largest applications require hundreds of dependencies, 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 nearly 8,500 package recipes in the Spack mainline repository, and over 5,000 users visit the Spack documentation monthly. Spack has a rapidly growing open source community from across the world, with over 1,500 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 was also used as the release management system for the U.S. Exascale Computing Project.
The goals of this BOF are: 1) to inform users 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.
Since we originally presented Spack at SC15, the community has grown rapidly, and new features are being added at a rapid pace. Since the Spack BoF at SC’24, Spack has made some of the most substantial changes in the project’s history. 2025 saw the release of Spack version 1.0, which reworks the core dependency model of the tool to support modern compilers and runtime libraries, adds build parallelism, introduces a stable API for package recipes, and much more. We also anticipate releasing v1.0, which will offer further performance and usability improvements, including improved error messages. The SC25 BOF is an excellent opportunity to inform users about these changes, to outline the promises Spack will make for stable releases going forward, and to understand uptake of v1.0 and issues with recent major changes.
The Spack Community BOF has been held at every SC conference since SC18, with regular attendance of 90-110 people. We have held Spack tutorials at every SC since 2016, and regularly have 40-60 attendees. At SC23, the Spack Community BoF had over 100 attendees and the tutorial had over 40. BoF sessions at other conferences such as PEARC (75 attendees) and ISC (100 attendees) are also well attended. While the Spack Community’s virtual communication channels are well-utilized, users and contributors have asked for public fora for announcements, feedback, and community building. Spack is constantly evolving, and feedback from SC BOF sessions has been invaluable in steering the project’s direction in previous years.
Website: https://spack.io