The traditional HPC landscape was led by computational physics, chemistry and other disciplines requiring huge processing performance and running on large number of nodes. Recently, more scientific disciplines rely on computing resources and introduce new requirements for the HPC environments, some needing only a fraction of one compute node for a short time while others need more powerfulnodes than those regularly available. Such diversity is pushing software development and distribution towards portable virtualization technologies that improve research reproducibility, and scientists rely more and more on containers to run their experiments. Specifically, containers address many of the requirements needed by researchers of the different scientific disciplines. In this context, Docker is the de-facto standard as a platform for the creation and distribution of containers.

This course is an introduction to an end-to-end scientific computing workflow utilizing Docker containers. Attendees learn about the fundamentals of containerisation and the advantages it brings to scientific software. Participants then familiarize with Docker technologies and tools, discovering how to manage and run containers on personal computers, and how to build applications of increasing complexity into portable container images. Particular emphasis is given to software resources which enable highly efficient scientific applications, like MPI libraries and the CUDA Toolkit. The training also explains the Docker distribution model based on cloud registries. The last part of the tutorial focuses on deploying Docker images on high-end computing systems, using a container platform capable of leveraging the performance and scalability of such machines, while maintaining a consistent user experience with Docker. After the tutorial, a hands-on session gives attendees the chance to freely experiment with building and running their own containers. Materials are provided to replicate the examples from the tutorial or tackle more advanced exercises.

Topics:

  • Containers general concepts
  • Introduction to Docker
  • Running containers on personal workstations
  • Managing images
  • Packaging scientific applications with container images
  • Distributing images: remote registries and Docker Hub
  • Running containers on high-performance systems

Audience:
Scientists, engineers and students interested in introducing container technologies in their activities. No previous container knowledge required. Familiarity with Linux and using a command-line terminal is highly beneficial.

Schedule:
This training is planned as a 4-hour introductory tutorial and 2-hour hands-on course, delivered during the ESiWACE2 Summer Schools:

Contact Person: