Python for High Performance Computing by MPCDF

Europe/Berlin
Zoom

Zoom

Sebastian Kehl (MPCDF), Sebastian Ohlmann (MPCDF), Klaus Reuter (MPCDF)
Description

Python for High Performance Computing

Python is indispensable in modern scientific computing, but bridging the gap between a simple prototype and a high-performance production code can be challenging. This course teaches you how to maximize Python's efficiency in an HPC environment, moving beyond standard scripting to high-speed parallel computing.

Course Content

  • HPC Fundamentals: An introduction to High Performance Computing.
  • Performance & Compilation: Deep dives into NumPy, SciPy, Numba, and JAX, as well as interfacing with C and Fortran.
  • Parallelism & Scaling: Profiling code, GPU acceleration, and parallel computing using `multiprocessing`, `concurrent.futures`, `mpi4py`, and Dask.
  • Data & IO: Efficient Input/Output strategies using HDF5.
  • Software Engineering: Best practices for packaging, publishing, testing, and generating documentation.

Format

  • Timeline: Two consecutive days, Dec 3 - 4, 9 am – 1 pm (Online via Zoom).
  • Materials: Instruction is based on Jupyter notebooks with reusable code and optional hands-on exercises.
  • Support: Daily Q&A sessions and supplementary material on specific topics such as Cython and visualization are provided.
    • 9:00 AM 9:30 AM
      Introduction to HPC with Python 30m
    • 9:30 AM 11:00 AM
      The Foundation of Scientific Computing with Python: NumPy, SciPy, and H5py 1h 30m
    • 11:15 AM 12:45 PM
      Software Engineering with Python: Packaging, Testing, Interfacing with C/C++ and Fortran, Profiling 1h 30m
    • 12:45 PM 1:00 PM
      Q&A 15m
    • 9:00 AM 10:00 AM
      From CPU to GPU: High-Performance Python with Numba, JAX, and CuPy 1h
    • 10:00 AM 11:00 AM
      Introduction to Parallel Computing; Shared Memory Parallelism with multiprocessing and concurrent.futures 1h
    • 11:15 AM 12:45 PM
      Scaling Out: Distributed Computing with Dask and mpi4py 1h 30m
    • 12:45 PM 1:00 PM
      Q&A 15m