Tricks for efficient multi-core computing in Python
In this presentation you will learn about:
concurrent.futures API of Python 3
- Threads vs forked processes vs spawned processes (pros and cons)
- The impact of the GIL on CPU-bound Python programs
- Bad interactions of fork-based multiprocessing and OpenMP runtimes
- BLAS-based parallelism (e.g. MKL, OpenBLAS)
- Memory bandwidth bound operations, arithmetic intensity and the roofline model.
This talk will include non-representative micro-benchmarks and silly quizzes for the audience :)
We will also quickly introduce the loky project to help mitigate some of the problems.