About the p-cores and e-cores and the operating system.

Started by Robertomcat, October 04, 2024, 12:07:49 PM

Previous topic - Next topic

Robertomcat

Hello, good afternoon.

I currently have eight computers with the 10900K processor, and at the time I bought the volume license to be able to optimize them all.

These days I am thinking of adding a new computer with the 14th generation processor with the powerful and efficient cores.

The question is if I could make the operating system only work with the e-cores and a specific program that I want to run, only do it on the p-cores.
I think it is not going to be possible, but before abandoning the project, I had to ask you guys who are the experts.

Thank you very much.

Jeremy Collake

You can make it happen, but I can't speak to how performant the end result will be because many OS threads are better off on the P-cores.

Using Process Lasso, here's how to restrict your entire system to E-cores, except for processes you specifically allow to use the P-cores:

1. Open menu item "Options / Tools / System Reserved CPU Sets". Select all your P-cores, as shown in the screenshot attached. Reboot.
2. Open menu item "Options / CPU / CPU Affinities..." to set P-core affinities for the process(es) you want to use the P-cores.

Software Engineer. Bitsum LLC.

Robertomcat

#2
Quote from: Jeremy Collake on October 04, 2024, 12:37:40 PMYou can make it happen, but I can't speak to how performant the end result will be because many OS threads are better off on the P-cores.

Using Process Lasso, here's how to restrict your entire system to E-cores, except for processes you specifically allow to use the P-cores:

1. Open menu item "Options / Tools / System Reserved CPU Sets". Select all your P-cores, as shown in the screenshot attached. Reboot.
2. Open menu item "Options / CPU / CPU Affinities..." to set P-core affinities for the process(es) you want to use the P-cores.
Thank you very much for your help, it has been of great help to me because I did not know of its existence.

But I have another question that has come to my mind now. If I then installed any program outside the operating system, it will also be restricted to use the ecores? I say this in case I then have to apply the rule to the software so that it only uses the pcores.

Jeremy Collake

Yes, after setting the Reserved CPU Sets, all installed applications, in addition to the OS, will be restricted to the E-cores. Only processes that you create CPU affinity rules for will use the P-cores.
Software Engineer. Bitsum LLC.

Robertomcat

Quote from: Jeremy Collake on October 04, 2024, 01:58:19 PMYes, all programs, whether installed at the time of setting the Reserved CPU Sets or later, will be restricted to the E-cores. Only processes that you create CPU affinity rules for will use the P-cores.
Ok, thanks!

Robertomcat

Hello, good afternoon.
I have another question about the distribution of work between powerful and efficient cores. If I tell a software that works with 20 threads to avoid the efficient cores, when there is a heavy workload, will some of these 20 threads continue working on the efficient ones? I ask this because I don't want to strictly force this software to work with the powerful cores, but rather to give priority to the powerful ones, but when the powerful ones are all busy, to be able to use the efficient ones. Thanks!

Jeremy Collake

If you use a CPU affinity rule for that purpose, then no threads will be assigned to the E-cores regardless of the load.

Have you tried a CPU Sets rule instead? That *might* allow the behavior you hope for, but it's far from certain as there are a lot of factors.
Software Engineer. Bitsum LLC.

Robertomcat

Quote from: Jeremy Collake on November 28, 2024, 07:46:11 AMIf you use a CPU affinity rule for that purpose, then no threads will be assigned to the E-cores regardless of the load.

Have you tried a CPU Sets rule instead? That *might* allow the behavior you hope for, but it's far from certain as there are a lot of factors.
I have tried the three rules that I can apply: affinity, avoiding efficient cores and CPU Sets. But I don't know for sure if avoiding efficient cores and CPU Sets could allow high load times on efficient cores, that's why I asked here. I was just looking for p-cores to be the priority cores, because there are jobs with less than 8 cores that can be run there, but sometimes there are 15 or 20 threads and I would like them to be able to run on all of them. I will leave the CPU Sets rule as you have indicated.

Jeremy Collake

The Efficiency Mode OFF rule may impede scheduling to the E-cores during high loads, so I recommend only the CPU Sets rule for experimentation -- though, again, that may not work.

You can also try ParkControl's power plan settings to adjust heterogenous scheduling behavior, perhaps setting it to "Performant Processors" or "Prefer Performant Processors". During the test, remove all rules you set with Process Lasso so you can assess the effect.



Software Engineer. Bitsum LLC.

Robertomcat

Quote from: Jeremy Collake on November 28, 2024, 10:32:22 AMThe Efficiency Mode OFF rule may impede scheduling to the E-cores during high loads, so I recommend only the CPU Sets rule for experimentation -- though, again, that may not work.

You can also try ParkControl's power plan settings to adjust heterogenous scheduling behavior, perhaps setting it to "Performant Processors" or "Prefer Performant Processors". During the test, remove all rules you set with Process Lasso so you can assess the effect.
Ok, thank you very much. I didn't know about this tool. I can't apply the volume license I have to this tool, right?

Jeremy Collake

No, it's separately licensed. However, the free version of ParkControl should do everything you need.
Software Engineer. Bitsum LLC.