Managing HPC Software Complexity with Spack
TimeMonday, November 12th8:30am - 5pm
DescriptionHPC software is becoming increasingly complex. The largest applications require over 100 dependency libraries, and they combine interpreted languages like Python with lower-level C, C++, and Fortran libraries. To achieve good performance, developers must tune for multiple compilers, build options, and 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 is an open-source tool for HPC package management, used on some of the fastest supercomputers in the world. It allows developers to write simple recipes in Python to automate builds with arbitrary combinations of compilers, MPI versions, build options, and dependency libraries. With Spack, users can install over 2,700 community-maintained packages without knowing how to build them, developers can automate builds of tens or hundreds of dependency libraries, and staff at HPC centers can deploy many versions of software for thousands of users. We provide a thorough introduction to Spack’s capabilities: basic software installation, creating new packages, development workflows using Spack, and advanced multi-user deployment.
Most sessions involve hands-on demonstrations, so attendees should bring a laptop computer.