Chapter 5. High-Performance Computing
In this chapter, we will cover the following topics:
Using Python to write faster code
Accelerating pure Python code with Numba and Just-In-Time compilation
Accelerating array computations with NumExpr
Wrapping a C library in Python with ctypes
Accelerating Python code with Cython
Optimizing Cython code by writing less Python and more C
Releasing the GIL to take advantage of multi-core processors with Cython and OpenMP
Writing massively parallel code for NVIDIA graphics cards (GPUs) with CUDA
Distributing Python code across multiple cores with IPython
Interacting with asynchronous parallel tasks in IPython
Performing out-of-core computations on large arrays with Dask
Trying the Julia programming language in the Jupyter Notebook