This workshop will introduce participants to high performance Python using techniques such as Just In Time (JIT) compilation through Numba. We will look at several problems, and develop solutions using several different techniques, and compare the performance gained by doing so with the (potential) loss in expressivity and clarity.
Learning objectives: Attendees will learn a collection of methods to accelerate Python code without resorting to GPUs, as well as have an idea of the potential drawbacks of requiring the needed libraries.
Knowledge prerequisites: Intermediate Python knowledge (including Numpy).
Hardware/software prerequisites: (1) Have an SSH client installed on your laptop. (2) Register for an account on Adroit(link is external). This is the cluster we will use for demonstration purposes. Make sure you can SSH to Adroit before the workshop by following this guide. (3) Optional: Have the Anaconda Distribution installed on your laptop to run things locally.
Workshop format: Lecture and hands-on