2019-09-04, 15:45–16:00, 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...).
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.