Python has become one of the most popular programming languages in scientific computing. It is high level enough that learning it is easy, and coding with it is significantly faster than other programming languages. However, the performance of pure Python programs is often suboptimal, and might hinder your research. In this course, we will show you some ways to identify performance bottlenecks, improve slow blocks of code, and extend Python with compiled code. You’ll learn various ways to optimise and parallelise Python programs, particularly in the context of scientific and high performance computing.

REQUIREMENTS You must be comfortable with plain python. That includes: 1. Knowing what is a class and a function 2. Familiar with Jupyter notebooks and basic console 3. Comfortable with the python software carpentry material

Access is restricted to Digital Research Alliance of Canada (formerly Compute Canada) authenticated users only: No