Python has tremendous popularity in scientific computing owing to the language extensibility, rich ecosystem and convenience for scientists to develop and prototype codes productively. While using Python may offer many simpler ways to achieve the same result, finding the most efficient means to do so for better performance and scalability can be a challenge. This course focuses on ways to optimise and parallel scientific Python codes, encompassing subjects such as performance analysis, efficient use of scientific libraries (e.g. NumPy), using extended Python languages like Cython, interfacing with C-libraries and utilising multi-processing strategies like Message Passing Interface (MPI) on HPC systems.
The course, split over 3 afternoons of 3 hours each, will cover the following topics:
Participation in the course is free of charge for both academia and industry.
This course will be conducted remotely via Zoom (meeting details will be sent to registrants at the start of the course) with short in-class exercises. There will be additional longer exercises to try out between sessions. The course will be split over the following 3 afternoon sessions;
You will only need a web browser to carry out the practical exercises.
Each participant is expected to have a basic knowledge of Python, including:
Some prior experience/knowledge of NumPy will be useful but not strictly required.