My Intel CPU Gen 12 has 6 performance cores and 8 efficiency cores.
When using joblib Parallel, I noticed Python was only using the efficiency cores. This made my code execution as slow as when running on a Gen 9 CPU.
This post indicates running Python in administrator mode allows to by-pass this limitation. https://stackoverflow.com/questions/76543239/any-python-code-that-is-not-in-focus-runs-twice-as-slow
This workaround is working as well in my case. Launching Jupyter Lab from an administrator Powershell window allows my code to run simultaneously on all performance and efficiency cores, dividing execution time by 3!
Is this a Python bug? Is there a hidden option or environment variable to allow using all cores without running Python as admin? In the mean time, should I run software relying on Python as admin when performance is required?
I also tried all of the joblib backends presented here. None fixed the core usage issue.
|OS Name|Microsoft Windows 11 Home|
|Version|10.0.22621 Build 22621|
Processor 12th Gen Intel(R) Core™ i7-12700H, 2700 Mhz, 14 Core(s), 20 Logical Processor(s)
Python 3.11.4 (tags/v3.11.4:d2340ef, Jun 7 2023, 05:45:37) [MSC v.1934 64 bit (AMD64)] on win32