Chapter 12. Performance Tuning, Profiling, and Concurrency
"Premature optimization is the root of all evil" | ||
--Donald Knuth, a renowned computer scientist and mathematician |
In the real world, there are more important things than performance, such as features, robustness, maintainability, testability, and usability. That's one of the reasons that we delayed discussing the topic of performance until the last chapter of the book. We will give hints on improving performance with profiling as the key technique. For multicore, distributed systems, we will discuss the relevant frameworks too. We will discuss the following topics in this chapter:
Profiling the code
Installing Cython
Calling the C code
Creating a pool process with multiprocessing
Speeding up embarrassingly parallel
for
loops with JoblibComparing Bottleneck to NumPy functions
Performing MapReduce with Jug
Installing MPI for Python
IPython Parallel