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:
- Use modern Python coding, standard Numpy/Scipy for the computations and all the cool libraries you want.
- Profile your applications on real cases, detect the bottlenecks and apply standard optimizations with Numpy.
- 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.
Transonic is a new pure Python package to easily accelerate modern Python-Numpy code with different accelerators (like Cython, Pythran, Numba, Cupy, etc...).