# AMD Threadripper PRO 5975WX (Zen 3), Ubuntu 24.04, 8 CPUs (taskset -c 32-39), Python 3.12.3, 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): 234.4 ms (median of 7) one predict_proba over 10000 rows, 8 thread(s): 31.5 ms (median of 7) $ python pi_cost.py all work 3 N = 8 CPUs, 3 rounds per setting, median wall time of the permutation_importance call pandas, n_jobs=1, 1 thread 59.57 s 5f242b6b5bd26ee0 same result numpy, n_jobs=1, 1 thread 59.23 s 5f242b6b5bd26ee0 same result numpy, n_jobs=1, N threads 8.58 s 5f242b6b5bd26ee0 same result numpy, n_jobs=N, 1 thread 10.44 s 5f242b6b5bd26ee0 same result pandas, n_jobs=N, 1 thread 10.33 s 5f242b6b5bd26ee0 same result numpy, n_jobs=N, LightGBM default threads 11.64 s 5f242b6b5bd26ee0 same result numpy, n_jobs=N, 1 thread, max_samples=0.5 6.05 s b756cc6b72a439bd DIFFERENT result numpy, n_jobs=N, 1 thread, n_repeats=2 5.25 s df04964ce9cc6f9e DIFFERENT result numpy float32, n_jobs=N, 1 thread 10.32 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 = 8 CPUs, 3 rounds per setting, median wall time of the permutation_importance call pandas, n_jobs=1, LightGBM default threads 9.10 s 5f242b6b5bd26ee0 same result numpy, n_jobs=2, N/2 threads 10.40 s 5f242b6b5bd26ee0 same result $ python pi_cost.py prep work30 30; python pi_cost.py all work30 5 ... (a 30-tree model) N = 8 CPUs, 5 rounds per setting, median wall time of the permutation_importance call pandas, n_jobs=1, 1 thread 4.99 s c9ac260ed8fc0f53 same result numpy, n_jobs=1, 1 thread 4.66 s c9ac260ed8fc0f53 same result pandas, n_jobs=1, LightGBM default threads 1.75 s c9ac260ed8fc0f53 same result numpy, n_jobs=1, N threads 1.40 s c9ac260ed8fc0f53 same result