1.

Solve : Multicore CPU question?

Answer»

Does anyone know if specific cores serve a different purpose than the others in a multicore CPU such as x2, x3, x4, x6?

I have a CPU gadget on my desktop with Win 7 and AMD Quadcore, and Core 1 and Core 4 seem more active than Core 2 and Core 3, while I would have expected the load to be balanced more evenly among cores unless an old program that doesnt support multi-core execution. Or if the cores are picked from whats next available in the core pool for multi-processing that it would be more random.

DaveLembke,
Really, that is a good question. I have just a plain old dual-core and  load balancing is very poor oist of the time. I use Windows XP. That is what the PC came with. It is not a 64 bit CPU, but has two cores.

Checking with the MS site, you don't find clear, concise answers to the question. AMD and Intel do not indicate the cores have assigned duties. The IMPLICATION is the OS and the applications have to be compiled to use more that one core.

Here is an easy to read article. From PCWorld.
Multicore: New chips mean new challenges for developers Quote from: DaveLembke on July 15, 2011, 10:38:47 PM

Does anyone know if specific cores serve a different purpose than the others in a multicore CPU such as x2, x3, x4, x6?
They don't serve specific purposes, no.


Quote
I have a CPU gadget on my desktop with Win 7 and AMD Quadcore, and Core 1 and Core 4 seem more active than Core 2 and Core 3, while I would have expected the load to be balanced more evenly among cores unless an old program that doesnt support multi-core execution. Or if the cores are picked from whats next available in the core pool for multi-processing that it would be more random.

Take a fictitious scenario similar to what you describe. Core 1 and Core 4 sit idle, while Core 2 and Core 3 are being utilized at 20%.

One might think, "well golly shouldn't it be distributing the work so that all the cores are doing 10%".

Thing is, the entire point of Multiple cores is to speed up processing- one of the most expensive operation when it comes to threads/threading/cores is the context switch. Typically, if you have two cores at a given utilization, that is one thread running in each. In order to "distribute" that load to the other cores, The threads would need to be context switched to the other cores, which defeats the entire purpose of having the cores in the first place, which is to prevent context switches.

I think the "problem" stems from people feeling that using more CPU/core% is somehow "bad"; this is covered rather well here.




The same could be said for RAM usage as well...
If i paid for 6G and i see 5.2 being used ...i'm pleased...not freakin out as some do.I see where this is going.
The Fallacy of Scalability.
A number of authors talk about this, but they do not put that phrase on the cover of a book. Would never sell. Nobody wants to know that scalability is non-linear.

Q. If I have to CPU's will I get twice the performance?
A. Do you catch more fish  in a bigger lake?
You need to seriously stop overthinking things...
Just a heads up...I know this is not a scientific comparison, but I had a 3 GHz Pentium 4 which could encode certain flv videos to xvid with 32 bit single threaded ffmpeg at around 30 fps and now I have a 3 GHz quad core Phenom II 945 and it can do the same task with multithreaded 64 bit ffmpeg at 120 fps, so I feel I have a processor which is 4 times more "powerful".
Thinks outside the box-
Wait... isn't there an option to balance core load in BIOSes? something along the lines of Advanced clock calibration...

http://www.overclock.net/amd-motherboards/397179-amd-advanced-clock-calibration-guide.html
I know its meant for overclocking, but if one of the cores is underclocked, you could add voltage/increase the MHz a little to even it up...Why does it matter if some cores are doing more work than others at a particular point in time? I have seen an article (I can't find it just now) which said that the Intel i7 and upcoming AMD Bulldozer cpus allow for uneven core use because it is better for power consumption and cooling than forcibly equalising the loads. They even arrange to unload the idlest cores and shut them down.
Quote from: TRANSFUSION on July 17, 2011, 01:48:21 AM
Thinks outside the box-
Wait... isn't there an option to balance core load in BIOSes? something along the lines of Advanced clock calibration...

http://www.overclock.net/amd-motherboards/397179-amd-advanced-clock-calibration-guide.html
I know its meant for overclocking, but if one of the cores is underclocked, you could add voltage/increase the MHz a little to even it up...

We're not talking about either overclocked or underclocked CPU Cores. 

Quote from: Salmon Trout on July 17, 2011, 02:06:55 AM
Why does it matter if some cores are doing more work than others at a particular point in time?

It doesn't. A lot of folks seem to think they are smarter than the people who do this stuff (building CPU's and writing multi processor kernels) for a living, though.Thanks for everyones input on this. Was just thinking that maybe some cores were different than others vs exact clones of one another given my observation of Cores 1 and 4 being more active than 2 and 3. A bench mark run on the system pegs all 4 cores loading them all up with processes to crunch.

I guess I was thinking that certain cores may have been created with specific duties similar to way back when you had to add a 80287 math co-processor to your 286 in the socket available for the 80287 math co-processor addon for crunching. I had to add a 287 coprocessor to my one system about 20 years ago because the 286 wasnt enough to handle the calculations with some early 3D graphics stuff I was playing with.Maybe you should try about running -
Ten different CPU intensive programs all at the same time.

Then see how the load is.   lol ... nah I am satisfied with what BC stated. Probably just a fluke that cores 1 and 4 are more active in getting designation to handle threadsMy logic was that if manufacturers can take a quad-core CPU and DISABLE a core or two to meet production requests, they could underclock cores to meet power requirement standards.

This got me thinking about logical vs physical cores.
http://software.intel.com/en-us/forums/showthread.php?t=73819


Discussion

No Comment Found