Start: Monday, 27 January 2020 @ 07:00

End: Wednesday, 29 January 2020 @ 14:00

Description:

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  message passing (mpi4py) approach.

Learning outcome

After the course participants are able to

analyse performance of Python program and use NumPy more efficiently
optimize Python programs with Cython
utilize external libraries in Python programs
write simple parallel programs with Python

Prerequisites

Participants need some experience in Python programming, but expertise is not required. One should be familiar with

Python syntax
Basic builtin datastructures (lists, tuples, dictionaries)
Control structures (if-else, for, while)
Writing functions and modules

Some previous experience on NumPy will be useful, but not strictly required.

Agenda

Day 1, Monday 27.1

Efficient use of NumPy


Performance analysis

Day 2, Tuesday 28.1

Optimisation with Cython


Interfacing with external libraries

Day 3, Wednesday 29.1

Parallel computing with mpi4py

Lecturers: 

Jussi Enkovaara (CSC), Martti Louhivuori (CSC)

Language:   English
Price:           Free of charge
https://events.prace-ri.eu/event/963/

Event type:
  • Workshops and courses
Python in High-Performance Computing @ CSC https://tess.elixir-europe.org/events/python-in-high-performance-computing-csc-f4fba83a-7b26-4fb8-a4d9-f38e2cfabf2b 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  message passing (mpi4py) approach. Learning outcome After the course participants are able to analyse performance of Python program and use NumPy more efficiently optimize Python programs with Cython utilize external libraries in Python programs write simple parallel programs with Python Prerequisites Participants need some experience in Python programming, but expertise is not required. One should be familiar with Python syntax Basic builtin datastructures (lists, tuples, dictionaries) Control structures (if-else, for, while) Writing functions and modules Some previous experience on NumPy will be useful, but not strictly required. Agenda Day 1, Monday 27.1 Efficient use of NumPy Performance analysis Day 2, Tuesday 28.1 Optimisation with Cython Interfacing with external libraries Day 3, Wednesday 29.1 Parallel computing with mpi4py Lecturers:  Jussi Enkovaara (CSC), Martti Louhivuori (CSC) Language:   English Price:           Free of charge https://events.prace-ri.eu/event/963/ 2020-01-27 07:00:00 UTC 2020-01-29 14:00:00 UTC [] [] [] workshops_and_courses [] []