In this course, we will cover machine learning and deep learning and how to achieve scaling to high performance computing systems. The course aims at covering all levels, from fundamental software design to specific compute environments and toolkits. We want to enable the participants to unlock the resource of machines like the JUWELS booster for their machine learning workflows. Different from previous years we assume that the participants have a background from a university level introductory course to machine learning. Suggested options for self-teaching are given below.
We will start the course with a presentation of high performance computing system architectures and the design paradigms for HPC software. In the tutorial, we familiarize the users with the environment. Furthermore, we give a recap of important machine learning concepts and algorithms and the participants will train and test a reference model. Afterwards, we introduce how deep learning algorithms can be parallelized for supercomputer usage with Horovod. Furthermore, we discuss best practicies and pitfalls in adopting deep learning algorithms on supercomputers and learn to test their function and performance. Finally we apply the gained expertise to large scale unsupervised learning, with a particular focus on Generative Adversarial Networks (GANs).
We assume that the participants are familiar with general concepts of machine learning and/or deep learning, such as widely used models, losses, regularization and basic model training / testing. Many excellent self-training resources are available such as:
- The MIT introduction to Deep Learning Course (http://introtodeeplearning.com/)
- The Machine Learning course and Deep Learning specialization by Andrew Ng et al. at Stanford (https://cs230.stanford.edu/) and on Coursera (www.coursera.org)
- The notebook-based courses of fast.ai (www.fast.ai) and of Master Datascience Paris Saclay (https://github.com/m2dsupsdlclass/lectures-labs)
- Ian Goodfellows book on Deep Learning (https://www.deeplearningbook.org/)
Hands-on experience with ML/DL framework is required, first experience with HPC systems is helpful.
After this course, participants will be able to parallelize Tensorflow and Pytorch ML workflows on HPC machines, taking into account the HPC system architecture and circumventing typical pitfalls and bottlenecks.
3-7 May 2021, 9:00 - 13:00
Dr. Stefan Kesselheim, Dr. Jenia Jitsev, Roshni Kamath, Dr. Mehdi Cherti, Dr. Alexandre Strube, Jan Ebert, Jülich Supercomputing Centre