Python is increasingly used in high-performance computing projects. It can be used either as a high-level interface to existing HPC applications and libraries, as embedded interpreter, or directly. This course combines lectures and hands-on sessions.

In the course has been shown how Python can be used on parallel architectures and how to optimize critical parts of the kernel using various tools.

The following topics have been covered:

  •  Interactive parallel programming with IPython
  • Profiling and optimization
  • High-performance NumPy
  • Just-in-time compilation with Numba
  • Distributed-memory parallel programming with Python and MPI
  • Bindings to other programming languages and HPC libraries
  • Interfaces to GPUs

Playlist with all the videos >>

Python, Introduction

Python, Bottlenecks

Python, IPython

Python, Numpy intro

Python, Think Vector

Python, Profiling

Python, Integrated Development Environments

Python, Debugging

Python, Interactive Parallel Computing

Python, Numba Vectorize

Python, Speeding Up With Cython

Python, Writing Language Bindings

Python, Introduction to Dask

Python, Introduction to MPI

Python, CUDA