This is an introductory course to programming for the DelftBlue supercomputer.
It introduces the main concepts of efficient and parallel computing with examples using Python.
While Python is very popular nowadays, the language’s focus on convenience can easily compromise efficiency compared to traditional HPC languages like C, C++ or Fortran. This course summarizes these pitfalls and how to mitigate them, and introduces simple techniques for parallelizing your program.
At the end of the day, you should be able to
– Describe how a program is executed on a supercomputer including scheduling,
disk storage, shared vs. distributed memory, multi-core CPUs and GPU accelerators;
– Find hotspots determining the runtime of your Python program
– Parallelize a Python program using a combination of
– optimized libraries,
– numba just-in-time compilation,
– numba parallel loops,
– (simple) mpi4py communication routines;
– Optimize the I/O (disk usage) of your program
## Prerequisites
– Command line and DelftBlue basics
– Basic Python skills
## Content level
100% beginner
Programme
09:30 – 09:45 Introduction
09:45 – 10:30 Introduction to Parallel Computing (lecture)
10:30 – 10:45 Coffee break
10:45 – 11:15 Numba (lecture)
11:15 – 12:45 Lab 1
12:45 – 13:45 Lunch
13:45 – 14:30 mpi4py (lecture)
14:30 – 14:45 Coffee Break
14:45 – 16:15 Lab 2
16:15 – 16:30 Closing
One day course
30 max. participants
Teachers:
J. Thies
D. Palagin
Costs:
€100,-
€25,- for BSc and MSc students.
including lunch and course materials, free for DCSE members.
Location:
Penguinlab, EWI B36.HB.2.130
Prerequisites:
Command line and DelftBlue basics
Python
Note:
This course is organized in the computer lab of the Mathematics department. Exercises will be carried out on DelftBlue.
You can either bring your own laptop or use one of the lab computers as a terminal.
External partiticipants without a NetID can do the exercises on their laptop or a lab computer.