Software containers allow an application and all of its dependencies to be bundled into a single package. This makes the application portable, shareable and reproducible.
The first part of this workshop will demonstrate how to create and run Docker containers. The second part will consist of hands-on exercises using Singularity, a secure alternative to Docker designed for HPC systems. Participants will learn how to bundle their research data, scripts, and software dependencies into a Singularity image so that others can easily reproduce the results. They will also see how to use the Slurm job scheduler to run parallel and GPU-enabled applications within Singularity containers.
Workshop format: Lecture, demonstration, and hands-on exercises
Target audience: This workshop is geared toward computational researchers interested in learning how to use containers to manage and share their software environments.
Knowledge prerequisites: Basic facility with the Linux command line and with using the Princeton Research Computing clusters.
Hardware/software prerequisites: For this workshop, users must have an account on the Adroit cluster, and they should confirm that they can SSH into Adroit *at least 48 hours beforehand*. Details on all of the above can be found in this guide. THERE WILL BE LITTLE TO NO TROUBLESHOOTING DURING THE WORKSHOP!
Learning objectives: Attendees will learn the best practices for working with containers for reproducible research, both on Princeton systems and more generally.