Python for HPC

Europe/Brussels
Online

Online

Geert Jan BEX (member@uhasselt.be;staff@uhasselt.be)
Description

Although vanilla Python is fairly slow and hence not a good candidate for high-performance computing, there are several options to significantly increase the efficiency of Python programs.  In this training, you will get a good overview.

Prerequisites

Good working knowledge of Python is expected. For one of the sessions, some knowledge of C/C++ or Fortran is useful.

Format

On each of the four days (Monday, Tuesday, Thursday, Friday) of the training, two sessions of two hours are scheduled for a total of 16 hours. The sessions will have a short coffee break.  Hands-on exercises are provided.

Schedule

Day 1: easy gains

Morning

  • Welcome and introduction
  • Easy gains
  • Profiling

Afternoon

  • Numba on CPU
  • Numba on GPU

Day 2: mixing in other languages

Morning

  • Cython

Afternoon

  • Using C/C++ code from Python (ctypes/SWIG)
  • Using Fortran from Python

Day 3: shared memory and distributed programming

Morning

  • Using multiple threads/processes (multiprocessing/futures)
  • Distributed and out-of-core computing with Dask

Afternoon

  • MPI part 1

Day 4: distributed computing and GPUs

Morning

  • MPI part 2
  • PySpark

Afternoon

  • Using GPUs
  • Wrap up

 

Registration
Python for HPC registration
    • 10:00 AM 12:00 PM
      Easy gains and profiling 2h
      Speaker: Geert Jan BEX (member@uhasselt.be;staff@uhasselt.be)
    • 1:00 PM 3:00 PM
      Numba 2h
      Speaker: Geert Jan BEX (member@uhasselt.be;staff@uhasselt.be)
    • 10:00 AM 12:00 PM
      Cython 2h
      Speaker: Geert Jan BEX (member@uhasselt.be;staff@uhasselt.be)
    • 1:00 PM 3:00 PM
      Using C/C++/Fortran from Python 2h
      Speaker: Geert Jan BEX (member@uhasselt.be;staff@uhasselt.be)
    • 10:00 AM 12:00 PM
      Multiprocessing, futures and dask 2h
      Speaker: Geert Jan BEX (member@uhasselt.be;staff@uhasselt.be)
    • 1:00 PM 3:00 PM
      MPI part 1 2h
      Speaker: Geert Jan BEX (member@uhasselt.be;staff@uhasselt.be)
    • 10:00 AM 12:00 PM
      MPI part 2 2h
      Speaker: Geert Jan BEX (member@uhasselt.be;staff@uhasselt.be)
    • 1:00 PM 3:00 PM
      Using GPUs 2h
      Speaker: Geert Jan BEX (member@uhasselt.be;staff@uhasselt.be)