Syllabus

caution

This documentation is under construction.

Goals & Rationale#

The main objective of this tutorial is to dimystify containers and containerization of software for usage on Hyak.#

Containers are lightweight, isolated software environments that encapsulate an application, along with its dependencies and runtime settings. Containers are useful because they provide a consistent and reproducible way to package, distribute, and run software across different computing environments.

Most importantly, software containers allow Hyak researchers to install their software package and all its dependencies without root administrative privileges.

Much of the HYAK documentation is organized into bite sized instructional guides for particular software tools or concepts, but these may be too advanced for users who are brand new to High Performance Computing (HPC) and and haven't used containers before. Here we have prepared a walk-through tutorial to demonstrate fundamental commands to build and use software containers. In this tutorial, we will explain what containers are and how and why they should be used in the Hyak research computing environment. We will provide exercises to give you practice using containers and building custom containers for your research.

Learning Objectives:#

  • Become familiar with Hyak software policies.
  • Be able to define what a container is.
  • Become familiar with the benefits of containers for reproducible science.
  • Become proficient in container usage.
  • Practice building customer containers.
  • Send a command to a container via a SLURM batch script.
PRO TIP

As you go through the tutorial look for tips like this one. In these boxes, we will include bits of information you might be able to use to customize this tutorial into a workflow when you feel comfortable.

Course Content#

Tutorial: Hyak Basics

  • TODO

Extra Practice#

We have curated a list of Additional Resources and you will find many are relevant for this tutorial.