A dual core paradox?

BernardP

Golden Member
Jan 10, 2006
1,315
0
76
A dual-core paradox?

Here is a thought I would like to humbly submit for discussion. The consensus is that dual-core processors are better at multitasking. The thought is that they are only because most applications are single-threaded. So one core is idle and can give its full power to another single threaded application.

The consensus is also that dual-core processors will really come into their own as more and more application are designed for multiple threads. Here is another thought: dual-cores will be faster with multi-threaded apps, but their better multi-tasking abilities will go out the window at the same time, as both cores will be filled with threads.

When one buys a 3800+ X2 he is buying two 3200+ on the same die...for about twice the price. The X2 will be almost twice as fast as the 3200... if it can process multiple threads.

Dual-cores and soon, quad-cores and more have basically been invented because of the inability of the chip manufacturers to continue raising clock speeds at a sustained pace.

Multi-tasking is mainly controlled by the OS, not by the processor.
 

kyparrish

Diamond Member
Nov 6, 2003
5,935
1
0
I can say that since I upgraded to dual-core, it has been a great experience. The only thing that is still frustrating though is that sometimes, I'm still waiting on my 7200rpm, 8mb buffer HDD to catch up with what I want to do.

Multi-threaded apps like Auto Gordian Knot FLY on the X2, but if I want to use my computer while I'm encoding, I still can, which is awesome.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Multi-tasking is mainly controlled by the OS, not by the processor.

Multitasking is not controlled by the processor at all. The CPU just supplies some facilities that make it possible, such as context switching and interrupts.

People misunderstand the nature of threading and multitasking. The vast majority of the applications that people use spend 99% of their time idling in the message loop, waiting for something to happen. When it does, they wake up, and compete for processor time with all the other active threads in the system. Dual core systems simply give Windows more options in terms of keeping things going by moving threads around. With two cores there is almost always ample CPU time available to serve the instantaneous needs of whatever threads require scheduling. The difference in Windows is quite noticeable.

It's also very unusual to find a single threaded application running in Windows. There are some, but even those apps that were not written as multithreaded by the developer are often using multithreaded components of the operating system that create additional threads in the process context. Lastly, threads don't usually "fill up" a core. Sometimes the scheduler will dedicate a thread to a specific core, and it is possible to force that behavior by setting the process affinity. Under ordinary circumstances the scheduler chooses whichever core makes the most sense (according to its algorithms) when a given thread is scheduled. In a timesliced multitasking environment threads are swapped out and back hundreds of times per second, and may utilize any core each time they are restored to the active context.
 

BernardP

Golden Member
Jan 10, 2006
1,315
0
76
Thanks Markbnj,

You have answered the questions I could not define correctly but were nagging me anyway.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
One of the problems is that people tend to think of threads as big chunky things that have to be "processed" all the way through; like a long rope that the processor has to climb. It's much more granular than that. I struggle for good analogies here, but think of it this way: each time a thread needs to be scheduled that is a molecule of water that needs to be moved through a pumping system. There are millions of molecules, and the busier the system the more molecules need to be moved. A dual core system is basically like having two pumps instead of one. Plenty of pumping capacity means the water is always moving. In this context it really doesn't make sense to talk about single-threaded versus multi-threaded apps: whether there is one thread or a dozen it is still getting chopped up into timeslices and fed through the pumps :).
 

BernardP

Golden Member
Jan 10, 2006
1,315
0
76
Thanks again,

So in my 3200+ vs 3800+ X2 example, the X2 could theorically, in an ideal scenario, do twice the work the 3200+ does in the same unit of time.

I wonder how AMD figures the performance rating numbers for the X2 line.

 

sandorski

No Lifer
Oct 10, 1999
70,763
6,333
126
Originally posted by: BernardP
Thanks again,

So in my 3200+ vs 3800+ X2 example, the X2 could theorically, in an ideal scenario, do twice the work the 3200+ does in the same unit of time.

I wonder how AMD figures the performance rating numbers for the X2 line.

I imagine it is kinda tricky to determine Ratings for the X2. From the start of AMD's rating system(AthlonXP) AMD has been fairly good at maintaining a relatively accurate and conservative comparison with the current P4's of the time. Though they said it wasn't in comparison to the P4, in retrospect it would seem that's what they did, though perhaps that was only coincidental. :shrug;

If AMD wanted to, they could have given the X2 3800+(for example) a 6400+ rating instead based on theoretical/optimal performance, but they were wise enough not to be tempted by that. ;)
 

imported_michaelpatrick33

Platinum Member
Jun 19, 2004
2,364
0
0
Originally posted by: sandorski
Originally posted by: BernardP
Thanks again,

So in my 3200+ vs 3800+ X2 example, the X2 could theorically, in an ideal scenario, do twice the work the 3200+ does in the same unit of time.

I wonder how AMD figures the performance rating numbers for the X2 line.

I imagine it is kinda tricky to determine Ratings for the X2. From the start of AMD's rating system(AthlonXP) AMD has been fairly good at maintaining a relatively accurate and conservative comparison with the current P4's of the time. Though they said it wasn't in comparison to the P4, in retrospect it would seem that's what they did, though perhaps that was only coincidental. :shrug;

If AMD wanted to, they could have given the X2 3800+(for example) a 6400+ rating instead based on theoretical/optimal performance, but they were wise enough not to be tempted by that. ;)

:laugh: I think even the fanbois and gals on this forum would choke on that. (For full disclaimers I own a X2 4400+ at 2640. :laugh: err ... it is actually an
X2 8440+
 

sandorski

No Lifer
Oct 10, 1999
70,763
6,333
126
Originally posted by: michaelpatrick33
Originally posted by: sandorski
Originally posted by: BernardP
Thanks again,

So in my 3200+ vs 3800+ X2 example, the X2 could theorically, in an ideal scenario, do twice the work the 3200+ does in the same unit of time.

I wonder how AMD figures the performance rating numbers for the X2 line.

I imagine it is kinda tricky to determine Ratings for the X2. From the start of AMD's rating system(AthlonXP) AMD has been fairly good at maintaining a relatively accurate and conservative comparison with the current P4's of the time. Though they said it wasn't in comparison to the P4, in retrospect it would seem that's what they did, though perhaps that was only coincidental. :shrug;

If AMD wanted to, they could have given the X2 3800+(for example) a 6400+ rating instead based on theoretical/optimal performance, but they were wise enough not to be tempted by that. ;)

:laugh: I think even the fanbois and gals on this forum would choke on that. (For full disclaimers I own a X2 4400+ at 2640. :laugh: err ... it is actually an
X2 8440+

:D

Even I, who defended the K6-2:)o) would choke on that! :D
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
So in my 3200+ vs 3800+ X2 example, the X2 could theorically, in an ideal scenario, do twice the work the 3200+ does in the same unit of time

I would say that the X2 could theoretically do twice the "work" of a given single core processor of equivlent clock speed. In practice this would only be achieved in a situation where you had two purely CPU-bound threads running. When you test a new dually system by running two instances of Prime95 at 100% CPU you are getting close to twice the work done. However, most applications will require disk, video, network interfaces, and memory resources that don't allow simultaneous access by both processors.