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 message passing (mpi4py) approach.
After the course participants are able to
Participants need some experience in Python programming, but expertise is not required. One should be familiar with
Some previous experience on NumPy will be useful, but not strictly required.
Day 1, Wednesday 23.1
Efficient use of NumPy
Day 2, Thursday 24.1
Optimisation with Cython
Interfacing with external libraries
Day 3, Friday 25.1
Parallel computing with mpi4py
Jussi Enkovaara (CSC), Martti Louhivuori (CSC)
Price: Free of charge