The modern scientific software stack includes thousands of packages from C, C++ and Fortran libraries, to packages written in interpreted languages like Python and R. To achieve high performance, they must also leverage low-level and difficult-to-build libraries such as MPI, BLAS and LAPACK. This complexity can be an obstacle to deployment and deters developers from building on each other's work.
Spack is an open source package manager that simplifies installing and sharing HPC software stacks. Spack provides a powerful dependency model, a simple Python syntax for writing package build recipes and a repository of over 4,150 community-maintained packages. This tutorial provides a thorough introduction to Spack’s capabilities: installing and authoring packages, integrating Spack with development workflows and using Spack for deployment at HPC facilities. Attendees will leave with foundational skills for using Spack to automate day-to-day tasks, along with deeper knowledge for applying Spack to advanced use cases.