Why are more slower cores better than one fast core?

NTMBK

Lifer
Nov 14, 2011
10,411
5,677
136
If you could get a single core which went that fast? Yeah, that would be awesome. I think everyone would love a 12-16GHz single core i7. Unfortunately, power usage ramps up too fast with clockspeed. It's not a linear relationship- you would need a LOT more than 4x the watts for 4x the clock speed.
 

Maximilian

Lifer
Feb 8, 2004
12,604
15
81
They are not, one fast core would be better.

12ghz single core cpu > 3ghz quad core cpu
Assuming IPC is equal.

The single core would run everything fast, the quad will not, the single core is easier to program for as well.

Its just design limitations (something to do with silicon i believe) that meant we had to go parallel with many cores instead of a single fast core.
 

ShintaiDK

Lifer
Apr 22, 2012
20,378
145
106
Who says more slower cores is better?

More slower cores is much harder to code for. Essentially an ideal istuation would more or less be a superfast singlecore. But due to limits there they started to expand with more cores. However the core wall seems to have been reached already.

I wonder if the Mitosis project will come alive again.
 

Charles Kozierok

Elite Member
May 14, 2012
6,762
1
0
It's a design tradeoff. There are advantages to having more than one core, because most computer users multitask, and there are limits to how far you can practically push frequency.

As Maximilian said, it's not like they have a choice between one 12 GHz core and four 3 GHz cores. They went multicore because they had to.

The turbo features are an attempt to have the best of both worlds, and show you how little you'd gain going to a single core.. a few hundred MHz for the loss of a lot of parallel processing power.
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
What are the limits to cost and power consumption? Increased core count leads to increased linear performance, if the problem allows for it. Increased core size leads to higher R&D costs, and more power consumption, for relatively small performance gains.

The gains tend to follow approximately a square root curve, from a 10,000ft foot view. But, there is another wrinkle: it's going to be easier to make smaller cores, optimize smaller cores, and get smaller cores running faster. So, there is a risk element, too: you might not actually succeed in making a giant fast single core, that's actually twice as fast at some TDP than 4 smaller cores.

And, today, clock speeds are really limited. Sure, they could make a 12GHz CPU, but to do that, it's going to have to do very little per clock, and have few long wires (long is quite relative, much like how the "smaller" cores are now >100M xtors). Imagine the Pentium 4's craptastic performance per clock on memory-bound and low-ILP workloads, but amplified exponentially--ew.

In some cases, it's purely size and power, though, like for cost-sensitive mobile devices, and game consoles. A Tegra 3 will choke on its RAM, but making it weaker might sacrifice sales, and increasing RAM bandwidth would add to their costs, and possibly to power consumption. More cores could improve performance some, and were cheap, in the scheme of things. Due to power consumption alone, a single big core would never even be considered, for phones/tablets.
 

shady28

Platinum Member
Apr 11, 2004
2,520
397
126
The answer is more complex than just saying one fast core would be better.

When you do more than one thing at a time, the CPU has to do something called context switching. This is a very time consuming activity.

I tend to think 2 cores is optimal, if we could get IPC growth. But as others have stated, we aren't. (edit : I should say, how many cores really depends on how many active threads you have)

There's an article that talks about this at the link below, originally printed in Dr. Dobbs Journal (programming rag).

Basically it's talking about how single-threaded applications that relied on increases in clock / IPC from larger and more complex CPUs are going to have to be re-engineered to be multi-threaded in order to get higher performance levels.

http://www.gotw.ca/publications/concurrency-ddj.htm
 

Roland00Address

Platinum Member
Dec 17, 2008
2,196
260
126
Higher clockspeeds drastically increase power consumption once you go past 3 ghz. For simplicity sake look at these charts
http://forums.anandtech.com/showthread.php?t=2281195
CPUPowerConsumption.png

2ghz you use about 25 watts for the i7 2600k
3ghz (150% clockspeed) you use about 50 watts (200% power)
4ghz (200% clockspeed) you use almost 100 watts (400% power)
4.9ghz (245% clockspeed) you use about 200 watts (800% power)

note the amount of power you use is increasing exponentially.

Increasing core count means increase cost of manufacturing but you get a linear increase in power consumption. Some programs with increase core count can be completely paralyzed and get near perfect scaling (video rendering). Most programs have scaling issues past 2 cores and very few programs can use more than 4 cores.
 

parvadomus

Senior member
Dec 11, 2012
685
14
81
It is a tradeoff. It is not only physics (mhz) that makes fast single cores non viable. The thing is that to improve IPC once you reach an almost optimal architecture like the Intel Core series, the only remaining way si to make data structures bigger (caches, windows, branch prediction tables, add more registers, etc.) and this just make a marginal improvement (its just like a database buffer, you gain more performance making it bigger, until a point, where gains are just marginal).
Adding more execute resources like ALUs, FPUs etc. make the core more capable tu run multiple threads, however it also makes a much more complex fetch and decode stages, adding a lot of extra area to the die. Its more efficient to allocate an area of an extra core for this, with its own fetch and decode, to just make the existing one bigger. It also avoids context switching (however this can be fixed by adding hiper threading).
 

KingFatty

Diamond Member
Dec 29, 2010
3,034
1
81
Yeah I agree, and also would question the assumption asked.

It's not that CPUs are just arbitrarily deciding not to go faster with single cores.

The problem is single core speeds sort of hit a ceiling.

So I think it would be better to ask: is it better to have a single fast core, or multiple fast cores?
 

sm625

Diamond Member
May 6, 2011
8,172
137
106
I'm sure a single celeron G440 core (sandy bridge) would be faster than 4 pentium II chips on a server. Hell it would probably be faster than 16 pentium IIs...
 

cytg111

Lifer
Mar 17, 2008
25,652
15,155
136
Should CPUs have stayed single core?

I don't see any difference, but then I'm a noobster so that's why I'm asking.

- Trick question. Single threaded cpu's would hit the same cielling as multicores does today.
But for the sake of the argument and levelling the playingfield

Case 1. You have two equally demanding tasks, running in parallel. What CPU would be faster, the single core or the dual core? The single core runs twice as fast as the dual core and everything runs in the cpu's cache so we can ignore the penalities of the subsystem.

Answer : The dual core. Why? Context switching. The single threaded cpu will take a hit from the os - maintaining thread states of the two processes.

Case 2. You have one demanding task .. Dont need to explain that.

But really, if I could trade in my quad for a single core with 4x performance, I problary would.
 

cytg111

Lifer
Mar 17, 2008
25,652
15,155
136
That's probably because you understand Amdahl's Law. ;)

Excatly why it needs to be two equally demanding tasks, if there is just a tad of fluctuation, the overlapping would likely gain more than the penality of the switching.

edit : but I really do like atleast a dual system, many times I have had a single thread halt everything else(hey, lets do this realtime, what can go wrong?) , having a backup cpu that lets me swap to my os and kill the thread have saved me many times.
 
Last edited:

nightspydk

Senior member
Sep 7, 2012
339
19
81
Haha.

No obviously not, but that said with the vast majority of games, I do just as well on my single core than my bit motherfucker.

Why maybe because games are not developed for my big motherfucker rather for consoles.

Hope the will change crysis paved the way. :)

Another trend you are seeing now is 3d gaming.
You cannot do that on a console really and it can be brathtaking if you experience it right like with skyrim. That need computing power my friend.
 
Last edited:

SunnyD

Belgian Waffler
Jan 2, 2001
32,674
146
106
www.neftastic.com
They are not, one fast core would be better.

12ghz single core cpu > 3ghz quad core cpu
Assuming IPC is equal.

The single core would run everything fast, the quad will not, the single core is easier to program for as well.

Its just design limitations (something to do with silicon i believe) that meant we had to go parallel with many cores instead of a single fast core.

This is patently, blatantly wrong on so many levels. So many considerations go into software development that transcends the "faster-is-better" mantra that turns this postulation into the Titanic. Even given all things being equal on the IPC front, properly designed software to take advantage of multiple cores running at 1/4 the clock speed of a single core equivalent CPU could potentially blow the doors off that single core. And conversely, all things being equal, properly designed software designed to run on a single core would blow the pants of a poor multi-core implementation.

We have ideal case scenarios already when it comes to modern CPUs thankfully, where we can downclock peripheral or idle cores when a singleton task needs additional "horsepower" from a single core, and give that individual a boost in terms of clock and TDP. Then when the workload demands a more balanced or distributed load across the cores, we can scale things back to a more appropriate multi-core split.

The takeaway here isn't the CPU itself though. The takeaway is the workloads, the tasks themselves, and most importantly the design of the software running those workloads to ensure they take proper advantage of those CPU resources available to them. Some workloads are better suited to a single, really fast core. Some workloads are better suited to being spread out among several cores. Ideally, you want as many cores as fast as you can get them. But the hybrid approach we have right now is good enough for the time being.
 

Charles Kozierok

Elite Member
May 14, 2012
6,762
1
0
edit : but I really do like atleast a dual system, many times I have had a single thread halt everything else(hey, lets do this realtime, what can go wrong?) , having a backup cpu that lets me swap to my os and kill the thread have saved me many times.

Honestly? I'd take the 12 GHz single core over the 3 GHz quad in a heartbeat.

Two 12 GHz cores on one workstation board would be a heck of a lot better than eight 3 GHz cores.
 

Stoneburner

Diamond Member
May 29, 2003
3,491
0
76
They are not, one fast core would be better.

12ghz single core cpu > 3ghz quad core cpu
Assuming IPC is equal.

The single core would run everything fast, the quad will not, the single core is easier to program for as well.

Its just design limitations (something to do with silicon i believe) that meant we had to go parallel with many cores instead of a single fast core.

Would a 12ghz single core necessarily multitask better than a 3ghz quad core? Or even equally as well?
 

Exophase

Diamond Member
Apr 19, 2012
4,439
9
81
This is patently, blatantly wrong on so many levels. So many considerations go into software development that transcends the "faster-is-better" mantra that turns this postulation into the Titanic. Even given all things being equal on the IPC front, properly designed software to take advantage of multiple cores running at 1/4 the clock speed of a single core equivalent CPU could potentially blow the doors off that single core. And conversely, all things being equal, properly designed software designed to run on a single core would blow the pants of a poor multi-core implementation.

How do you propose that code running on X cores that are 1/X as fast would blow the doors off of the single core?

The same code optimized for many cores will happily run on a single core. The OS will schedule execution on the single core so that it appears that many threads are running simultaneously. Even when done with very fine granularity this doesn't add very much overhead. And when the threads would otherwise be waiting for each other they will switch to let the others execute.

In a case where you have really unnaturally high switching frequency you'd replace the switching overhead on a single core with the synchronization overhead of a multi-core. You could probably concoct some scenario where the many cores with the same aggregate throughput makes sense but probably not with code resembling something sane.
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
Case 1. You have two equally demanding tasks, running in parallel. What CPU would be faster, the single core or the dual core? The single core runs twice as fast as the dual core and everything runs in the cpu's cache so we can ignore the penalities of the subsystem.
But the single core won't run twice as fast. If it could, we'd have those mythical 10GHz CPUs that Netburst was supposed to evolve us too. Really fast, with SMT to take care of the context switching problems, and hide high latencies (in bad benchmarks).

But really, if I could trade in my quad for a single core with 4x performance, I problary would.
We all would, I'm sure. But the trade off isn't nice and linear. They very well might not be able to make a single core CPU with even 2x the performance of current quads, in the same die area.
 

cytg111

Lifer
Mar 17, 2008
25,652
15,155
136
I agree, which is why I eliminated the subsytem in the context .. And I agree again (hence, it's a trick question).
Again this is the primary reason why I am amped about haswells TSX, it is one of the things that will help us leverage more cores.. Cause like it or not, parallelism is the future.
 

BrightCandle

Diamond Member
Mar 15, 2007
4,762
0
76
The tricky thing is with a 12Ghz single core is that you might end up with less cache or something else important. Given an otherwise appropriate scaling in resources such that it was 4x more performance as well as 4x the clock speed it would be worth it. But we can already see in the mobile world they are choosing 4 x 1Ghz cores over 1 4Ghz core because it consumes less power and space for that level of performance. Of course it requires the software to be written differently but there comes a point where parallel becomes a better way to extract performance out of the additional transistors.

I would likely take a single core with 2x the performance in preference to a quad core , many tasks are still and will remain single thread limited and the performance impact of multithreading a lot of algorithms is incredibly high such that its not worth it until you can put 3-4 cores on the problem.
 

UaVaj

Golden Member
Nov 16, 2012
1,546
0
76
assuming ipc is the same and assuming software utilization is 100% optimized.

singe 12ghz vs four 3ghz. the same amount of work would get done. difference would be negligible. the four 3ghz core might get a little more done due to lower latency of parrellel processing.

since software utilization is currently broke. singe core is the clear winner.

as soon as software utilization is fixed. multi core will be the winer. lower heat, lower power, lower latency.
 

Idontcare

Elite Member
Oct 10, 1999
21,110
59
91
assuming ipc is the same and assuming software utilization is 100% optimized.

singe 12ghz vs four 3ghz. the same amount of work would get done. difference would be negligible. the four 3ghz core might get a little more done due to lower latency of parrellel processing.

since software utilization is currently broke. singe core is the clear winner.

as soon as software utilization is fixed. multi core will be the winer. lower heat, lower power, lower latency.

I don't quite follow the part in bold. Processing in parallel always results in more work needing to be done, specifically the overhead associated with creating and feeding data to the parallel threads as well as the aggregation of thread results and finalization of the parallelized task's output.

AmdahlsLawaugmentedbyAlmasiandGottlieb.png:original


At best the overhead (signified as Almasi's and Gottlieb's IPC in the equation above) is negligible and the compute time asymptotically approaches that of Amdahl's Law...and only then can you start to speak of the code being so perfectly parallelized that Amdahl's Law asymptotically approaches that of flat-out serial code on a commensurately faster processor.
 

Maximilian

Lifer
Feb 8, 2004
12,604
15
81
Would a 12ghz single core necessarily multitask better than a 3ghz quad core? Or even equally as well?

In effect it would multitask equally as good as the quad with software that can use a quad (the single core will never actually multitask just go so fast it seems like it but that's besides the point) overall the 12ghz single core is better though because it can run single threaded stuff much faster than the quad would be capable of.