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 to 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 ...