Presenters
Event Type
Tutorial

Parallel Programming Languages, Libraries, Models
and Notations
System Administration
TimeMonday, November 13th8:30am -
5pm
Location407
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 implementations
of dependency 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.
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 install over 1,800 community-maintained packages without knowing how to build them; developers can efficiently automate 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: basic software installation, creating new packages, using Spack for HPC software development, and advanced multi-user deployment. We provide detailed use cases from our experiences in production HPC environments. 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 install over 1,800 community-maintained packages without knowing how to build them; developers can efficiently automate 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: basic software installation, creating new packages, using Spack for HPC software development, and advanced multi-user deployment. We provide detailed use cases from our experiences in production HPC environments. Most sessions involve hands-on demonstrations, so attendees should bring a laptop computer.
Presenters