SWD6: High Performance Python

SWD6: High Performance Python#

Booking for this course is through the IT Training Unit.

Content#

Over the past few years, the Python language and the wider Python ecosystem have become invaluable tools in research computing and data analytics.

Python is (mostly) an interpreted language and can be slow, but depending on the application, there are ways to speed up Python code and take advantage of multi-core and distributed computational resources.

In this online hands-on workshop you will have the opportunity to discover and gain experience with some tools and techniques that can be used to improve the execution speed of your Python code.

Objectives#

The workshop will introduce a number of ways to measure the efficiency of your code and improve its speed of execution, including:

  • Choosing suitable data structures, algorithms and libraries

  • Profiling your code to discover what is slow or requires a lot of memory

  • Improve the execution time of Python code using:

    • Vectorisation (with NumPy)

    • Compilers (with Numba)

The content covered in this workshop will prepare you for exploring more advanced and specialised techniques, which will be covered in a future workshop. This will include:

Prerequisites#

We recommend that attendees have a working knowledge of the Unix shell and are proficient Python programmers. If you need to learn how to program in Python, please attend SWD1a: Introduction to Python programming. It is strongly recommended that you bring your own laptop to this workshop with some specific software installed. Further information will be provided when you are accepted onto the course.

Attendees are expected to be familiar with the concepts and techniques covered in our Introductory Python Course: familiarity with Python syntax, running Python code, and awareness of the Python Standard Library. It will be advantageous to have experience with Python programming for data processing, awareness of what Python Decorators are, and familiarity with the Google Colab environment. Please organise a Google account so as to be able to use Google Colab which we primarily use to teach this course.

Duration#

1 day

Frequency#

This workshop usually runs once each academic year.
If you would like a bespoke version of this course run in your department, then please contact us.

Suitability#

Research postgraduate students and above; teaching and lecturing staff.