Python programming language has become popular in scientific computing due to many benefits it offers for fast code development. Unfortunately, the performance of pure Python programs is often sub-optimal, but fortunately this can be easily remedied. In this course we teach various ways to optimise and parallelise Python programs. Among the topics are performance analysis, efficient use of NumPy arrays, extending Python with more efficient languages (Cython), and parallel computing with task based (multiprocessing) and message passing (mpi4py) approaches.
After the course participants are able to analyse performance of Python programs, and are familiar with various ways to optimise and parallelise them.
Some experience in Python programming.
Day 1, Wednesday 1.3
Efficient use of NumPy
Day 2, Thursday 2.3
Optimisation with Cython
Parallel computing with multiprocessing
Day 3, Friday 3.3
Parallel computing with mpi4py
Lecturers: Jussi Enkovaara (CSC), Martti Louhivuori (CSC)
Price: Free of charge