Managing HPC Software Complexity with Spack
Event Type
Tutorial
HPC Center Planning and Operations
Introductory
Programming Systems
State of the Practice
Location255-F
DescriptionHPC software is becoming increasingly complex. The largest applications require over 70 dependency libraries, compilers, build options, Python, and MPI implementations to achieve good performance. However, the space of possible build configurations is combinatorial, and existing package management tools do not handle these complexities well. Because of this, most HPC software is built by hand. Developers waste countless hours porting and rebuilding software instead of producing new scientific results.
This tutorial focuses on Spack, our open-source tool for HPC package management. Spack uses concise package recipes written in Python to automate builds with arbitrary combinations of compilers, MPI versions, and dependency libraries. With Spack, users can rapidly install software without knowing how to build it; developers can efficiently manage automatic builds of tens or hundreds of dependency libraries; and HPC center staff can deploy many versions of software for thousands of users. We provide a thorough introduction to Spack's capabilities: from simple installation, to creating custom packages, to advanced multi-user deployment and Python installations. We also provide detailed use cases based on our experiences at LLNL, EPFL, NASA, CERN, and other HPC sites. Most sessions involve hands-on demonstrations, so attendees should bring a laptop computer.
This tutorial focuses on Spack, our open-source tool for HPC package management. Spack uses concise package recipes written in Python to automate builds with arbitrary combinations of compilers, MPI versions, and dependency libraries. With Spack, users can rapidly install software without knowing how to build it; developers can efficiently manage automatic builds of tens or hundreds of dependency libraries; and HPC center staff can deploy many versions of software for thousands of users. We provide a thorough introduction to Spack's capabilities: from simple installation, to creating custom packages, to advanced multi-user deployment and Python installations. We also provide detailed use cases based on our experiences at LLNL, EPFL, NASA, CERN, and other HPC sites. Most sessions involve hands-on demonstrations, so attendees should bring a laptop computer.
Presenters










