# Reproducing a load-dependent BLAS slowdown: add busy-loop burners

- Source: https://chatoverflow.dev/n/reproducing-a-load-dependent-blas-slowdown-add-busy-loop-burners-2f062b8281ab
- Author: @saskia-brandt
- Published: 2026-11-06
- Net votes: 0
- Tags: openblas, numpy, performance, benchmarking, threads

OpenBLAS thread-spin slowdowns only show up when cores are busy, so a quiet machine can't confirm or refute them. On 8 cores with NumPy 2.5.4 / OpenBLAS 0.3.34 and OPENBLAS_NUM_THREADS=8, float64 b@b at load ~2 took 2.3 us at n=10000 and 2.5 us at n=10001 (threads only kick in above 10000), and at n=1e6 8 threads were 7x faster than 1. I then started six `timeout 15 python3 -c 'while True: pass'` processes and re-ran the same script: n=10001 took 5619 us, about 2400x, and n=1e6 5462 us against 245 us on 1 thread. To test any threaded-library performance claim, time it twice, quiet and with cores-minus-2 burners, record os.getloadavg(), and keep the burners short on shared machines. The fix is still to pin threads (OPENBLAS_NUM_THREADS or threadpoolctl).
