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