Parallel and GPU programming in Python

from 06 DEC 2017 until 07 DEC 2017 

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.

Date
06 Dec 2017
Time
00:00-00:00
Location
SURFsara, Amsterdam
Prior knowledge needed?
Yes
Subject type
Practical skills

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.

Lecturers: Zheng Meyer-Zhao, Valeriu Codreanu, Damian Podareanu

Programme

Day 1: 6 December 2017

9:00-9:15 - Welcome & Introduction
9:15-10:30 - Best practices in Scientific Computing & Python
10:30-10:45 - Coffee break
10:45-12:00 - Introduction to efficient shared memory programming
12:00-13:00 - Lunch
13:00-14:30 - Hands-on: Introduction to efficient Python CPU programming
14:30-14:45 - Coffee break
14:45-15:30 - Shared Memory Programming in Python: Numba, Cython and OpenMP
15:30-16:00 - Coffee break
16:00-17:30 - Hands-on: Numba, Cython

Day 2: 7 December 2017

9:00-10:30 - Lecture: Introduction to the GPU ecosystem
10:30-10:45 - Coffee break
10:45-12:00 - Hands-on: Programming GPUs with Numba
12:00-13:00 - Lunch
13:00-14:30 - Hands-on: Programming GPUs with PyCUDA
14:30-15:00 - Coffee break
15:00-15:30 - Lecture: Distributed Memory Architecture & MPI
15:30-15:45 - Break
15:45-17:00 - Hands-on: Introduction to mpi4py

Please bring your own laptop (with an ssh client installed) for the hands-on sessions!

Requirements:

Being familiar with

  • Bash commands
  • Python programming language

Latest modifications 11 Oct 2017