The use of containers has revolutionized the way in which industries and enterprises have developed and deployed computational software and distributed systems. This containerization model has gained traction within the HPC community as well, with the promise of improved reliability, reproducibility, portability, and levels of customization that were not previously possible on supercomputers. This adoption has been enabled by a number of HPC Container runtimes that have emerged including Singularity, Shifter, Sarus, Podman and others. This hands-on tutorial looks to train users on the use of containers for HPC use-cases. We will provide a detailed background on Linux containers, along with an introductory hands-on experience building a container image, sharing the container and running it on an HPC cluster. Furthermore, the tutorial will provide more advanced information on how to run MPI-based and GPU-enabled HPC applications, how to optimize I/O intensive workflows, and how to setup GUI- enabled interactive sessions. Cutting-edge examples will include machine learning and bioinformatics. Users will leave the tutorial with a solid foundational understanding of how to utilize containers on HPC resources using Podman, Shifter and Singularity, and in-depth knowledge to deploy custom containers on their own resources.
Targeted Audience
This tutorial is aimed at users of HPC platforms (researchers, students, application developers)
that want to adopt container-based approaches to their workflows and applications. It will also
be useful for system administrators and other support staff who want to enable and support
containers on HPC systems.
Prerequesites
Audience members should be comfortable with basic Linux command-line usage, familiarity with
basic Linux administration such as using package managers, and compiling and installing
applications. Audience members will need a laptop and the ability to log in to an online interface.