Question Determining cores vs threads for setting affinity

Aug 14, 2023
2
0
10
Hi all, so I have the following processor : 13th Gen Intel(R) Core(TM) i7-13700HX 2.10 GHz. According to Intel's spec page it has:

Total Cores -16
# of Performance-cores - 8
# of Efficient-cores - 8
Total Threads -24

I need to set affinity for a program to just the P cores, and my system simply lists 0 thru 24. Any idea which of these I would select? I've never seen a list that listed more than just the total cores. Any advice is appreciated.....
 
Hi all, so I have the following processor : 13th Gen Intel(R) Core(TM) i7-13700HX 2.10 GHz. According to Intel's spec page it has:

Total Cores -16
# of Performance-cores - 8
# of Efficient-cores - 8
Total Threads -24

I need to set affinity for a program to just the P cores, and my system simply lists 0 thru 24. Any idea which of these I would select? I've never seen a list that listed more than just the total cores. Any advice is appreciated.....
The first 16 cores are P-cores and their corresponding hyperthreads
CPU 0 = P-Core 0
CPU 1 = P-Core 0 hyperthread.
CPU 2 = P-Core 1
CPU 3 = P-Core 1 hyperthread
...and so on.
 
The first 16 cores are P-cores and their corresponding hyperthreads
CPU 0 = P-Core 0
CPU 1 = P-Core 0 hyperthread.
CPU 2 = P-Core 1
CPU 3 = P-Core 1 hyperthread
...and so on.
Yes the first 16 cores are the pcores but basically it doesn't matter to the OS which one the real or the hyper one is, if you only run one thread on the pair it will run at full speed even if you set it on the so-called hyperthread.
And if you want the program to use as much resources as it can you have to set it to all the pcores anyway.
 
As a matter of interest, what happens if you allow the program to use the E-cores as well as the P-cores?
I do not know what the OP does, but I set affinity to run several instances of the same app in parallel and to test the performance and troubleshoot a PC system.
It helps me reduce reduce the time it takes for applications to complete tasks, since I could manually assign the fastest core.
Also setting affinity ensures that the tasks are executed without interruptions from other processes and prevents contention between threads sharing the same physical core.

By the way that only works with some apps, otherwise there may not be a significant performance improvements with affinity.
In most cases Windows' scheduler is capable of making the best decisions about thread allocation.