Optimizing code with Cython and Numba
Here, we will have a short introduction on how to optimize code with Cython and Numba. These are competitive approaches; Cython is a superset of Python that allows you to call C functions and specify C types. Numba is a just-in-time compiler that optimizes the Python code.
As an example, we will reuse the distance recipe from the proteomics chapter. We will compute the distance between all atoms in a PDB file.
Getting ready
Cython normally requires specifying your optimized code in a separate .pyx
file (Numba is a more declarative solution without this requirement). As IPython provides a magic to hide this, we will use IPython here. However, note that if you are on plain Python, the Cython development will be a bit more cumbersome.
You will need to install Cython and Numba (with conda
, just perform conda install cython numba
).
As usual, this is available in the 08_Advanced/Cython_Numba.ipynb
notebook.
How to do it...
Take a look at the following steps:
Let's...