13–17 May 2024
ONLINE
Europe/Vienna timezone

Agenda & Content

Topics covered in the course

  • Advanced Python
    • Python behind the scenes
    • Python developer's Swiss army knife
    • Debugging & profiling
  • Python usage on HPC systems
    • Python projects on an HPC system
    • Python and SLURM
  • Single-node parallelization – useful libraries and their limitations
    • Numpy, Cython, Numba, Pandas, Dask, Tensorflow, CuPy
  • Multi-node parallelization & GPUs
    • Mpi4py
    • Dask distributed
    • Horovod: multi-GPU distribution for TensorFlow and Pytorch

 

DAY 1 – Monday, 13 May 2024

08:45  Join in
09:00Welcome, Motivation & Introduction
=====Advanced Python
---------Python developer's Swiss Army knife
09:15IDEs overview
09:30Documentation & Type hints
09:45Logging
10:00Testing
10:15Debugging
10:30-- BREAK --
---------Python usage on HPC systems
10:45Module & Spack
11:00Virtual env
11:30Conda
12:00-- LUNCH BREAK --
13:00Apptainer (Singularity)
---------Python and Slurm
13:20A Slurm refresher
13:40Slurm with module/spack, venv and conda
13:55Slurm and Apptainer (Singularity)
14:10Slurm and MPI
14:35-- BREAK --
---------Benchmarking & Profiling
14:50Benchmarking & Time measurements
15:05Built-in profiling tools
15:25Other profiling tools
15:45-- BREAK --
16:00Q & A
16:30End of first day

DAY 2 – Wednesday, 15 May 2024 

08:45  Join in
---------Python behind the scenes
09:00Python runtimes: CPython, PyPy, Ironpython
09:20Collections & Caching Overview
10:00-- BREAK --
10:15Python datamodel: Objects, Special attributes & methods, Slots
11:00Python datamodel: Inheritance, Metaclasses
12:00-- LUNCH BREAK --
13:00Generators, Built-In Functions, List comprehensions & Lambdas
13:30Garbage Collector
13:45Integrating native code in python
14:00-- BREAK --
=====Single-node parallelization
14:15Introduction: Definitions, Batch & Stream processing, ...
---------Useful libraries and their limitations
14:30NumPy
15:00Numba
15:30Cython
15:45-- BREAK --
16:00Q & A
16:30End of second day

DAY 3 – Friday, 17 May 2024

08:45  Join in
---------Useful libraries and their limitations (cont.)
09:00Pandas
09:20Dask
09:40TensorFlow
10:10cuDF & cuPy
10:30-- BREAK --
=====Multi-node parallelization
10:45Introduction to multi-node parallelization
11:00mpi4py
12:30-- LUNCH BREAK --
13:30Dask distributed & Dask-MPI
14:30-- BREAK --
14:45Horovod: multi-GPU for TensorFlow and PyTorch
15:45-- BREAK --
16:00Q & A
16:30End of third day / End of course