Description
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.
Learning outcome
After the course participants are able to analyse performance of Python programs, and are familiar with various ways to optimise and parallelise them.
Prerequisites
Some experience in Python programming.
Agenda
Day 1, Monday 29.1
-
Efficient use of NumPy
-
Performance analysis
Day 2, Tuesday 30.1
-
Optimisation with Cython
-
Parallel computing with multiprocessing
Day 3, Wednesday 31.1
-
Parallel computing with mpi4py
Lecturers: Jussi Enkovaara (CSC), Martti Louhivuori (CSC)
Language: English
Price: Free of charge