Parallelism in Numerical Python Libraries
summary
Shows which libraries actually parallelize (NumPy linear algebra vs elementwise ops), links NumPy to BLAS/MKL/OpenBLAS, and demonstrates threadpoolctl and environment variables like OMP_NUM_THREADS to control threads. Compares multiprocessing vs multithreading, Numba/Cython/Numba JIT examples, PyTorch numpy-view behavior, and scikit‑learn nested parallelism with concrete timings (42 s single‑thread vs 8 s with tuned threads) and discusses oversubscription, memory‑mapping, and which backends (pthread/OpenMP/rayon) are used.
AI-written summary · about
chapters (19)
- 0:00Parallelism in Python libraries
- 1:49How libraries implement it
- 3:54NumPy linear algebra parallel
- 6:00NumPy parallel config
- 7:05Just-in-time compilation for parallelism
- 9:29SciPy threading and processing
- 14:04Pandas parallel group-by
- 16:29UMAP parallel with Numba
- 18:13Ahead-of-time vs just-in-time compilation
- 19:58Polars parallel-by-default
- 20:40scikit-learn forests threading
- 21:00scikit-learn search processing
- 22:45Memory handling multi-processing
- 24:11Nested parallelism OpenMP Loki
- 27:02Challenges combining APIs
- 29:32Parallelism default or opt-in
- 30:57Unified parallel config
- 32:25Parallelism in numerical Python
- 32:45Q&A library-specific
related talks
30mParallel computing in Python: Current state and recent advances
31mPython Multithreading and Multiprocessing: Concurrency and Parallelism
30mParallelization of code in Python for beginners
30mPython Serialization and the Hallows of Parallel Computing
35mWriting robust, readable, and maintainable concurrent programs in Python
39mUnlocking the Parallel Universe: Subinterpreters and Free-Threading in...
30mCUDA in Your Python: Effective Parallel Programming on the GPU
01h 33mPower up your work with compiling and profiling
