Over the years, scientific software has grown more and more complex, and ensuring it works for a simple application can be difficult. A bigger challenge is getting software to run on supercomputers, which can be very different from the environments where open-source packages are developed and tested. Computer scientist Todd Gamblin of Livermore Computing (LC) has focused his career on making life easier for scientific software developers by providing them with tools to help them develop, build, and run their codes.
In 2013, Todd created the Spack package manager to automate the arduous process of building and installing software so that applications—like LLNL’s tightly integrated multi-physics simulations—could easily manage hundreds of software components on LLNL’s supercomputers. Open source since 2014, Spack configures and builds software stacks that applications rely on. It is flexible enough to allow the sort of experimentation HPC users need to achieve the best performance; users can install many different variants of the same package using different compilers, options, dependency versions, and MPI implementations. The logic solver at the core of Spack ensures that all components are compatible. The project won an R&D 100 Award in 2019 and has amassed an active community of over 1,000 contributors. Together with a team of core developers at LLNL, they have added more than 6,600 packages, and Spack has become popular at HPC sites around the world. It is the tool used to integrate and distribute the hundreds of packages needed to deploy the U.S. Exascale Computing Project’s integrated software stack.
Spack is the cornerstone of the Binary Understanding and Integration Logic for Dependencies (BUILD) project, which Todd also leads. BUILD aims to automate even more of the software integration process. The project is investigating solver technologies that can understand the compatibility of different compilers and runtime libraries, automated ways to detect system software, and machine learning techniques to predict which package versions will work together. By reducing human labor and errors associated with dependency conflicts, BUILD will help code teams spend more time developing their own code and less time fighting with the code they rely on.
Todd got his start at LLNL developing scalable tools for measuring, analyzing, and visualizing performance data from parallel applications. He has pushed for better developer collaboration tools and has been a long-time advocate for open source in and outside of LLNL. Todd also leads efforts to engage with cloud vendors and ensure that LLNL’s HPC software can run just as easily in the cloud as it can on-premises.
Todd appreciates the impact his work can have on the Lab’s mission, and the impact the Lab can have on the broader scientific community. He states, “Open-source tools developed at LLNL enable people around the world to use HPC resources more effectively and to do better science.” In turn, these tools provide a framework for an entire community to maintain software needed by LLNL and its programs—for instance, LLNL could never maintain Spack’s thousands of software packages alone, and it benefits from the work of Spack’s enthusiastic contributors. Ultimately, Todd notes, “Sustaining open-source communities is about finding leverage. It’s worthwhile for LLNL to put in the effort to build and maintain something like Spack if it incites a community of thousands to work together for the benefit of all.”
Todd holds a B.A. in Computer Science and Japanese from Williams College. He earned an M.S. in Computer Science from the University of North Carolina at Chapel Hill. While there, he collaborated with Livermore and completed his Ph.D. in 2009. He received the Department of Energy’s Early Career Research Award in 2014, and in 2022 he was promoted to Distinguished Member of Technical Staff, the Lab’s highest technical job classification level.