Created by LLNL computer scientist Todd Gamblin in 2013, the open-source Spack software project has been on a rocket-like trajectory ever since. Spack handles the installation of nearly 8,500 packages—container platforms, database tools, deep learning frameworks, graphical user interfaces, physics applications, and much more—which means users can build just about any package and its dependencies with the simple spack install command.

Today, the project team manages code updates, feature requests, and bug fixes from contributors all over the world. Every month, over 100 contributors push commits to Spack, and the project recently surpassed 1,500 total contributors. “I always wanted Spack to be used widely but never imagined this many people would be working on it,” said Gamblin, a Distinguished Member of Technical Staff at LLNL.

The project’s user and developer community has grown steadily thanks to recurring activities like real-time tutorials, Birds-of-a-Feather meetups at conferences, a lively Slack channel, and regular virtual meetings. But the global Spack community hadn’t gathered for an in-person, user-focused event until this year.

Nicknamed SUM25, the inaugural Spack User Meeting took place in Chicago on May 7–8 as part of the High Performance Software Foundation’s (HPSF) first conference (Spack is a founding member of the HPSF within the Linux Foundation, which organized the conference). SUM25 featured dozens of talks from users and developers representing national labs, academia, and industry. Gamblin noted, “We’ve needed to have an event like this for a while. People were engaged with the presentations and were thrilled to find so much commonality with other users.”

According to longtime Spack developer Greg Becker, “The meeting provided a venue for user-to-user technical depth across the Spack community, and I’m very happy with how it went. Like any first-year event, we learned things we’ll do differently next time to make it even better.” Alec Scott from Livermore Computing’s Tools Development Group added, “It was amazing! We've never had this many Spack contributors together in one place before, so the conference was full of more interesting conversations than you could possibly listen to at once.”

Similar Perspectives

Although Spack can install packages on any computer—from personal laptops to exascale systems—the team has seen significant growth in its use at high performance computing (HPC) centers. And although HPC users often seek support from the core development team, they don’t always talk to other HPC centers. SUM25 bridged that gap by offering opportunities for HPC users to collaborate and address mutual challenges.

LLNL developer Caetano Melone found SUM25 illuminating in this regard. He said, “The pure concentration of people who are enthusiastic about HPC developer tools was really great, as well as meeting people with similar perspectives on how they approach increasing the productivity of HPC clusters and communicating about specific problems we’ve all faced at our respective centers.” Scott pointed out, “You’re working on the same problems in the same areas as other folks, but you meet them in disjointed spaces. It was nice to finally see someone and say, you should talk to so-and-so who has the same question, and they’re right over there.”

Figure: Spack users and contributors represent a range of HPC roles and organizations including the U.S. Department of Energy complex, universities, private research labs, and commercial companies. SRE = Site Reliability Engineering. (Click to enlarge.)

Jumping into the Deep End

Spack’s roadmap depends on both seasoned developers and new contributors. “We’re happy with developers’ ability to pick up the project and move it forward,” noted Becker. For example, Scott, who joined the Lab three years ago after interning, is busy with Spack-centric and -adjacent development, including updating Spack’s public source mirror, improving and automating security checks for GitHub pull requests, supporting CI/CD efforts for the entire HPSF, and leading LLNL’s Hubcast project, which synchronizes GitHub and GitLab branches and workflows.

Kathleen Shea joined LLNL in March after working on Spack during an internship, and just two months later she presented a new feature at the user meeting (more on this in the next section). “The conference was eye-opening to see Spack’s impact and reach and to meet passionate users. When I’m focused on developing this tool, I don’t really see how many users are using it,” she stated. “The Spack team instilled confidence in me, and my presentation made me feel stronger about what I was able to accomplish.”

Another Livermore intern-turned-staff, Melone has been working on spack-gantry, which augments the project’s continuous integration and deployment (CI/CD) pipeline by forecasting resource allocations. Although Spack’s cloud-based build farm provides flexible resource provisioning for package compilation and testing, resource usage can be suboptimal and slow. “Requesting resources is inefficient. This feature lets you send package specifications to a web API, which returns a prediction of resources needed to complete that job,” explained Melone, who presented spack-gantry at SUM25 for feedback.

Version 1.0

On the first day of SUM25, Becker previewed Spack v1.0. Coming this summer, the release will include modeling compilers as dependencies instead of as attributes on every package installation—a feature that’s been in development since 2018. Another key feature of the release is the separation of package recipes into their own GitHub repository. “Users may only need the newer version of a single package or a big fix from the core repo, so we’re giving them the flexibility to mix and match without having to update everything together,” said Becker.

Spack will also get a performance boost with parallelism of the installation algorithm. Previously, Spack installed one package (with its dependencies) at a time. Now, multiple packages can kick off the process simultaneously. “Time keeps adding up for simulation codes with many packages. Being able to start multiple at a time significantly decreases installation time,” explained Shea, who began developing this parallelism during her internship and completed it as a new employee.

Version 1.0 will be a major release with breaking changes; check GitHub for release notes. Upcoming Spack tutorials are scheduled for July 21 at the ACM Practice and Experience in Advanced Research Computing (PEARC) Conference and August 5–6 via LLNL’s High Performance Computing Innovation Center’s annual tutorial series

— Holly Auten