Accelerating pure Python code with Numba and just-in-time compilation
Numba (http://numba.pydata.org) is a package created by Continuum Analytics (http://www.continuum.io). At the time of writing, Numba is still a young and relatively experimental package, but its technology is promising. Numba takes pure Python code and translates it automatically (just-in-time) into optimized machine code. In practice, this means that we can write a non-vectorized function in pure Python, using for
loops, and have this function vectorized automatically by using a single decorator. Performance speedups when compared to pure Python code can reach several orders of magnitude and may even outmatch manually-vectorized NumPy code.
In this section, we will show how to accelerate pure Python code generating the Mandelbrot fractal.
Getting ready
The easiest way to install Numba is to use the Anaconda distribution (also maintained by Continuum Analytics), and type in a terminal conda install numba
. On Windows, an...