High Performance Python II
- Type:
- Tutorial
- Audience level:
- Intermediate
- Category:
- High Performance Computing
March 8th 1:20 p.m. – 4:40 p.m.
Description
In this tutorial, I will cover how to write very fast Python code for data analysis. I will briefly introduce NumPy and illustrate how fast code for Python is written in SciPy using tools like Fwrap / F2py and Cython. I will also describe interesting new approaches to creating fast code that is leading changes to NumPy on a fundamental level.
Abstract
In this tutorial, I will cover how to write very fast Python code for data analysis including making use of NumPy and using GPUs. I will largely focus on writing extensions to Python using hand-wrapping and Cython but will touch also on using tools like weave, Instant, ShedSkin and compare them to PyPy. I will also spend the last part of the tutorial on using GPUs with Python and discuss the performance trade-offs of the technology. This will be a high-level overview of the space with deep dives in Cython and GPUs
Outline:
- Brief Introduction to NumPy, SciPy and array-oriented computing with Python including exercises (1 hour)
- Introduction to hand-wrapping and extending Python (1 hour)
- Detailed description of Cython and how to use it to connect to machine-compiled code (1 hour)
- Detailed description of GPUs and how to use them best with NumPy (45 minutes)
- Summary and overview of using Python to write super fast code (15 minutes)