MPCDF Online Course on “Python for HPC”, July 25-27, 2023

Symbolic picture for the article. The link opens the image in a large view.

We are proud to announce a three-day online course on “Python for HPC,” organized by the Max Planck Computing and Data Facility (MPCDF). FAU students and scientists are eligible to participate free of charge.

The Python programming language has become very popular in scientific computing for various reasons. Users not only implement prototypes for numerical experiments on small scales, but also develop parallel production codes, thereby partly replacing compiled languages such as C, C++, and Fortran. However, when following this approach it is crucial to pay special attention to performance. This course teaches approaches to use Python efficiently and reasonably in a HPC environment. The first lecture gives a whirlwind tour through the Python programming language and the standard library. In the following, the lectures strongly focus on performance-related topics such as NumPy, Cython, Numba, compiled C- and Fortran extensions, profiling of Python and compiled code, parallelism using multiprocessing and mpi4py, parallel frameworks such as Dask, and efficient IO with HDF5. In addition, we will cover topics more related to software-engineering such as packaging, publishing, testing, and the semi-automated generation of documentation. Finally, basic visualization tasks using matplotlib and similar packages are discussed.

The lectures will be given based on Jupyter notebooks and will include many reusable code examples. For each topic, hands-on exercises are available and will be discussed in separate sessions. On the last day, there will be time for a general question & answer session.

The course will comprise lectures in the morning from 9:00 a.m. to 12:30 p.m. and exercise sessions at 4:00 p.m. in the afternoon.

Connection Details

The course will be given via Zoom, the connection details will be sent to the participants by email in due time. The virtual room will be opened about 15 minutes before the lectures and exercises start.

Course Material

The course material (i.e. Jupyter notebooks from the lectures and exercises, and additional files) is available via Git. The link will be sent to the participants by email in due time.

Software Prerequisites

To run the code examples and do the exercises, a Python 3 installation including NumPy, SciPy, Numba, matplotlib, and Jupyter is required.  For the part on Cython and interfacing with C and Fortran, a compiler such as `gcc` and `gfortran` is necessary. For the last part on distributed-memory parallelization using MPI, a working mpi4py installation is required.

For all participants, there will be an option to do the exercises and experiments on Jupyter instances in a Cloud platform. Details will be communicated separately in due time. Locally on your laptop, we recommend to install the Anaconda Python Distribution which contains most of the necessary packages.


A detailed agenda and a registration link are available at: