Parallel and GPU Programming in Python @SURFsara

CET
VK1/VK2 (SURFsara)

VK1/VK2

SURFsara

Science Park 140, 1098 XG Amsterdam
Description
The Python programming language has become more and more popular in Scientific Computing. In this course, we will talk about the best practices in Python and in scientific computing in general. We will also introduce the concept of concurrent and parallel programming, distributed programming, and GPU programming. During the hands-on session, you will experience how these are done in Python on the Dutch National Supercomputer Cartesius. You will also learn how to use libraries such as numba, PyCUDA and mpi4py.
Slides
  • Wednesday, 6 December
    • 09:00 09:15
      Welcome & Introduction
      Convener: Zheng Meyer-Zhao (SURFsara)
    • 09:15 10:30
      Best practices in Scientific Computing & Python
      Convener: Zheng Meyer-Zhao (SURFsara)
    • 10:30 10:45
      Coffee break 15m
    • 10:45 12:00
      Introduction to efficient shared memory programming

      This lecture focuses on issues like parallelism and concurrency and dives a little bit into compiler theory by explaining concepts like just in time and ahead of time compilation in the context of a interpreted language (Python).

      Convener: Damian Podareanu (SURFsara)
    • 12:00 13:00
      Lunch 1h
    • 13:00 14:30
      Hands-on: Introduction to efficient Python CPU programming

      This tutorial will teach how to apply certain theoretical concepts in Python by using the subprocess, multiprocessing, concurrent.futures, and asyncio libraries. Additionally, two examples are introduced illustrating the aot and jit concepts.

      Convener: Damian Podareanu (SURFsara)
    • 14:30 14:45
      Coffee break 15m
    • 14:45 15:30
      Shared Memory Programming in Python: Numba, Cython and OpenMP

      The lecture is focused on introducing the three programming paradigms and contains Python code samples illustrating key concepts and performance.

      Convener: Damian Podareanu (SURFsara)
    • 15:30 15:45
      Coffee break 15m
    • 15:45 17:15
      Hands-on: Numba, Cython

      Handson for the Numba, Cython, OpenMP lecture

      Convener: Damian Podareanu (SURFsara)
  • Thursday, 7 December
    • 09:00 10:30
      Introduction to the GPU ecosystem
      Convener: Valeriu Codreanu (SURFsara)
    • 10:30 10:45
      Coffee break 15m
    • 10:45 12:00
      Hands-on: Programming GPUs with Numba
      Convener: Valeriu Codreanu (SURFsara)
    • 12:00 13:00
      Lunch 1h
    • 13:00 14:30
      Hands-on: Programming GPUs with PyCUDA
      Convener: Valeriu Codreanu (SURFsara)
    • 14:30 14:45
      Coffee break 15m
    • 14:45 15:30
      Distributed Memory Architecture & MPI
      Convener: Zheng Meyer-Zhao (SURFsara)
    • 15:30 15:45
      Coffee break 15m
    • 15:45 17:00
      Hands-on: Introduction to mpi4py
      Convener: Zheng Meyer-Zhao (SURFsara)