Make your Python code fly at transonic speeds!
2019-09-04 , Track 3 (Oteiza)

Transonic is a new pure Python package to easily accelerate modern Python-Numpy code with different accelerators (like Cython, Pythran, Numba, Cupy, etc...).


Slides available at https://tiny.cc/euroscipy2019-transonic

Transonic is a pure Python package (requiring Python >= 3.6) to easily accelerate modern Python-Numpy code with different accelerators (like Cython, Pythran, Numba, Cupy, etc...) opportunistically (i.e. if/when they are available).

We will first present the context of the creation of this package, i.e. the Python's High Performance Computing (HPC) Landscape. We will show how Transonic can be used to write elegant and very efficient HPC codes with Python, with examples taken from real-life research simulation codes (fluidfft and fluidsim). We will discuss the advantages of using Transonic instead of writing big Cython extensions or using Numba or Pythran directly.

A strategy to quickly develop a very efficient scientific application/library with Python and Transonic could be:

  1. Use modern Python coding, standard Numpy/Scipy for the computations and all the cool libraries you want.

  2. Profile your applications on real cases, detect the bottlenecks and apply standard optimizations with Numpy.

  3. Add few lines of Transonic to compile the hot spots.

We won't forget to also discuss some limitations of Transonic, and more generally of Python and its numerical ecosystem for High Performance Computing.


Project Homepage / Git

https://bitbucket.org/fluiddyn/transonic/

Project Homepage / Git

https://bitbucket.org/fluiddyn/transonic/

Abstract as a tweet

Make your numerical Python code fly at Transonic speed!

Python Skill Level

basic

Domain Expertise

some

Domains

General-purpose Python, Parallel computing / HPC, Simulation, Vector and array manipulation

Researcher in fluid dynamics at LEGI (Grenoble). Use Python a lot, in particular for the FluidDyn project.