Accelerating Python code with Cython
Cython is both a language (a superset of Python) and a Python library. With Cython, we start from a regular Python program and we add annotations about the type of the variables. Then, Cython translates that code to C and compiles the result into a Python extension module. Finally, we can use this compiled module in any Python program.
While dynamic typing comes with a performance cost in Python, statically-typed variables in Cython generally lead to faster code execution.
Performance gains are most significant in CPU-bound programs, notably in tight Python loops. By contrast, I/O bound programs are not expected to benefit much from a Cython implementation.
In this recipe, we will see how to accelerate the Mandelbrot code example with Cython.
Getting ready
A C compiler is required. You will find all compiler-related instructions in the introduction the this chapter.
You will also need Cython, which should be installed by default with Anaconda. If needed, you...