Mobile and Desktop Processors
Intel® Core™ processors, Intel Atom® processors, tools, and utilities
16815 Discussions

On an i7 920 processor with HT enabled, which of the cores seen in Windows are the material ones and which are the virtual ones ?

idata
Employee
2,517 Views

On an i7 920 processor with HyperThreading enabled, which of the cores seen in Windows are the material ones and which are the virtual ones ?

I am running 4 instances of Folding@Home on my i7 920 and I usually assign 1 specific core to each instance of the program, so that Windows will not run them on the same core than other programs.

The problem is, with HyperThreading enabled, I have 8 cores. 4 of them are "real" while 4 others are "virtual".

As HyperThreading makes the unused instructions on a core available for other programs, if I run an instance of the program on one "real" core and on its associated "virtual" core, I will not benefit from the full power of the processor, since the two programs will attempt to ose the same instruction sets.

All that windows tells me is that they are numbered from 0 to 7. That's not really useful...

Which cores are the real ones, which are the virtual ones, and which real one is associated with which virtual one ???

0 Kudos
4 Replies
idata
Employee
844 Views

I just run 8 instances, I don't think there is an easy way to tell if you'r on a HT core or not.

You could dissable HT then you know your using real ones.

idata
Employee
844 Views

Well, the problem is that if I do that, I'll lose all the extra calculation power HT gives me, and it will slow down a lot more the folding@home instances (which run in a lower priority) since the system and any other program I use will have to run on a core already running folding@home, thus "competing" for the whole core instead of "competing" for the same instructions (and they don't use exactly the same instructions since they are different programs) and slowing down a bit the whole thing.

And on the other hand, if I disable HT, Windows name the cores with numbers from 0 to 3 instead of the 0 to 7 needed for 8 cores, but I don't know if the 4 first ones are material and match with the 4 first ones of the 8 seen by windows when HT is enabled.

 

I'm quite sure that it does make a difference with everlasting folding@home work units but it'd be hard to guess...

I'll try to affix the same programs to some cores and find out (using super pi for example) and let you know.

Thank you, it will help me to find out !!

idata
Employee
844 Views

I thought about this more, I think the CPU would be smart enough to spread the load across each core first then load up the HT cores. So if you have 4 threads then they'll be on core's 1-4, the 5th thread will go on core 1, then you'll have some contention for that core.

0 Kudos
idata
Employee
844 Views

Nah, I think Windows thinks of every core, virtual or not, as a whole CPU and makes no distinction. I think it is not the CPU that determines itself its core load. Is it ?

I just ran my test.

Processors used (as seen in windows, set with the task manager)

 

Time for performing an 1M PI calculation with Super Pi (seconds)

 

0111112113110+1161+2112+3153+011

So cores 0 and 1 are the same material core. one is the actual one and one is the HT virtual one.

Same for cores 2 and 3.

Pattern is as follows : actual core, its associated virtual core, then actual core, its associated virtual core, and so on.

Cor

Material Core in Windows's taskmgrVirtual (HT) Core in Windows's taskmgr, associated with the material one on its left 01234567
0 Kudos
Reply