Identify CPU in Task Manager

Status
Not open for further replies.
Joined
Aug 15, 2005
Messages
2,329
Location
Lexington, KY
I am curious to know if there is a defined pattern in the CPU Usage graphs in the Performance tab of Task Manager.

These examples all have four 'CPU' graphs, either from four real cores, or half fakes from hyperthreading. Let's label the graphs 1,2,3,4 from left to right.


Example 1:

Host has two CPUs, two real cores in each. In task manager, do cores 1 & 2 belong to physical processor A, and 2 & 3 belong to physical processor B? Or is it split into 1 & 3 = A and 2 & 4 = B?


Why ask? First, my assumption was challenged when I saw Windows 7 dealing with the fake hyperthreading cores. Here is what I saw...

Example 2:

Host has one dual core CPU with hyperthreading. Load it with processing tasks and only graphs 1 & 2 are loaded, the fake cores in graphs 3 & 4 are minimally loaded. Note I am assuming that Windows 7 deals with hyperthreading correctly, and thus deciding which graphs are the fake cores.

On a side note, Intel says Windows is hyperthreading aware from XP, but I disagree. Watching task manager on Windows XP I see all cores, including the fakes, loaded about equally.


So really, who cares? The bottom line of my curiousity goes back to example 1 with two physical CPUs, each with two real cores. In that case, if one were to assign processor affinity to half of the CPU resources, I would surely want to choose two cores on the same CPU! (Because of the caches.)

Thanks!
 
Originally Posted By: BearZDefect
The bottom line of my curiousity goes back to example 1 with two physical CPUs, each with two real cores. In that case, if one were to assign processor affinity to half of the CPU resources, I would surely want to choose two cores on the same CPU! (Because of the caches.)


This is something that the OS would choose. You may have a choice if you have something that power management can choose for you to save energy at the cost of performance.

Choosing 2 "fake" core as you speak is actually not good for performance, because it is actually not 2 cores running at the same time but rather 1 core switching between 2 threads or tasks when there's nothing to do in between stalls (i.e. branching). This is always going to be slower than letting 2 physical cores running independently with completely duplicate set of hardware (including cache), and not just one set of hardware with duplicate sets of registers and states (internal storage between stages).
 
Last edited:
I always thought that 0, 2, 4... are "real" and 1, 3, 5... are "fake".

From what I've read back when Win7 was first launched the scheduler handles threads very differently when compard to XP. This may be why you see such a difference.

Of course this is just from "hobby" reading I've done in the past...
 
gomes, that's what I thought too about the sequence of real vs fake cores, but watching W7 schedule on a single hyperthreading processor suggests that the graphs in task manager reflect otherwise.

PandaBear, yes, I know the fake cores should not be loaded. My example of setting affinity was for real cores, no hyperthreading on those CPUs at all (example 1). I just want two cores from the *same* physical processor.

And I fully expected someone to say "Leave it to the OS" and in general I agree with that. Microsoft and Intel say so. PandaBear says so. Amen.

There are, however, exceptions. I don't mean to debate this question, or get into a deep discussion about it. I understand what the fake cores are, and why Intel put those extra pipelines there.

I just want to be able to tell which task manager graph reflects which core.
 
Originally Posted By: BearZDefect
gomes, that's what I thought too about the sequence of real vs fake cores, but watching W7 schedule on a single hyperthreading processor suggests that the graphs in task manager reflect otherwise.

PandaBear, yes, I know the fake cores should not be loaded. My example of setting affinity was for real cores, no hyperthreading on those CPUs at all (example 1). I just want two cores from the *same* physical processor.

And I fully expected someone to say "Leave it to the OS" and in general I agree with that. Microsoft and Intel say so. PandaBear says so. Amen.

There are, however, exceptions. I don't mean to debate this question, or get into a deep discussion about it. I understand what the fake cores are, and why Intel put those extra pipelines there.

I just want to be able to tell which task manager graph reflects which core.


I've studied mine pretty carefully and it really seems to me like 0,2,4... are the real and 1,3,5... are logical.
 
If I fire up Prime95, this is what it tells me:
[Main thread Mar 25 02:20] Logical CPUs 0,1 form one physical CPU.
[Main thread Mar 25 02:20] Logical CPUs 2,3 form one physical CPU.
[Main thread Mar 25 02:20] Logical CPUs 4,5 form one physical CPU.
[Main thread Mar 25 02:20] Logical CPUs 6,7 form one physical CPU.
 
Thank you for all the interesting and useful responses.

Cold45ws, in your description, is that one quad core CPU with hyperthreading? Or four dual core processor chips (without hyperthreading) on one motherboard? I suspect the first, but just to be sure.

The scenario where affinity was interesting to me is where there are two (or more) separate CPU chips on the motherboard.

This is a curiousity subject for me, nothing making or breaking here.
 
True, calling one fake and one real isn't entirely accurate, but it is two pipelines feeding only one processing core. Kind of like multi-threading at a very low level.
lol.gif
It is clever, and as operating systems get better at scheduling for this design, it works better.
 
Funilly, even though P95 takes steps to make that determination, its kinda useless. If I run Prime95 in 2 threads per worker, 4 workers; the cpu pulls an additional 15W of power and each iteration takes ~5ms longer.
But its a pretty well optimized load; it automatically optimizes it self for several different CPU designs... Since HT works by utilizing unused processor instruction width, basically, it makes sense a highly optimized load is already going to be using most of that width; and the performance drop is probably due to cache thrashing or similar.
Nowadays I run a 1x4 with the extra threads manually disabled. I leave HT enabled because I do notice a performance benefit while doing my normal tasks with the machine while under full P95 load...
Its funny to see task manager report 50% cpu load when I know that as far as actual processor resources, its probably closer to 90-95%
 
I have noticed that deceptive total CPU usage in task manager too - it seems to assume they are all real cores. (There I go with the real vs not real again.) Just like you wrote, it will report 50% usage when I am sure it is nearly 100%, and there is no disk access holding up the show. All this sophistication is making it harder to analyze what is going on, and as much as I'd like to believe it, I doubt all the scheduling is optimal for the caches.
 
Thats why I keep hardware monitor open which displays CPU power and amperage. I have learned to understand its power draw in respect to actual loading. I have come to the machine and discovered it sustaining about 140W! Around 107A! Normally its closer 115W at 40C with 4 thread Prime95. It does vary noticeably depending on temperature. At 45C its normal load is 120W. I quickly found the plugin-container for firefox was racing and killed it.
 
Status
Not open for further replies.
Back
Top Bottom