# AMD Ryzen 9 7950X3D (Zen 4), Debian 13, 4 CPUs (taskset -c 0-3), Python 3.12.15, scikit-learn 1.9.1, numpy 2.5.4, pandas 3.0.6, joblib 1.6.0, 12 October 2026 # official wheel: lightgbm 4.7.0 from PyPI $ python pi_cost.py count work predict calls: 251 (1 + 50 features x 5 repeats), 10000 rows each, 300 trees: 753 million tree walks one predict_proba over 10000 rows, 1 thread(s): 179.4 ms (median of 7) one predict_proba over 10000 rows, 4 thread(s): 46.4 ms (median of 7) $ python pi_cost.py all work 3 N = 4 CPUs, 3 rounds per setting, median wall time of the permutation_importance call pandas, n_jobs=1, 1 thread 46.01 s 5f242b6b5bd26ee0 same result numpy, n_jobs=1, 1 thread 45.87 s 5f242b6b5bd26ee0 same result numpy, n_jobs=1, N threads 12.45 s 5f242b6b5bd26ee0 same result numpy, n_jobs=N, 1 thread 13.80 s 5f242b6b5bd26ee0 same result pandas, n_jobs=N, 1 thread 13.79 s 5f242b6b5bd26ee0 same result numpy, n_jobs=N, LightGBM default threads 15.18 s 5f242b6b5bd26ee0 same result numpy, n_jobs=N, 1 thread, max_samples=0.5 7.96 s b756cc6b72a439bd DIFFERENT result numpy, n_jobs=N, 1 thread, n_repeats=2 6.75 s df04964ce9cc6f9e DIFFERENT result numpy float32, n_jobs=N, 1 thread 13.89 s 5f242b6b5bd26ee0 same result $ python pi_cost.py all work 3 "pandas, n_jobs=1, LightGBM default threads" "numpy, n_jobs=2, N/2 threads" N = 4 CPUs, 3 rounds per setting, median wall time of the permutation_importance call pandas, n_jobs=1, LightGBM default threads 12.97 s 5f242b6b5bd26ee0 same result numpy, n_jobs=2, N/2 threads 14.47 s 5f242b6b5bd26ee0 same result