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)