Is dual-core better than quad-core?

Nathan Davis
20 November 2006, 6:48 AM


My previous story on quad-core being overkill kicked up quite a storm. It was aimed at the current desktop user, which was conveniently overlooked by some. However, with benchmark results in, head for the bomb shelter -- I maintain my claim that quad-core remains excessive.


Let's hear it for the starved realm of reality.

Multiple cores are all the rage, it seems, mostly because you demand better performance -- as do I, but I'd rather not subscribe to unrealistic expectations.

The mindset that more cores are better is far from the truth -- this is not a simple case of raw megahertz. Whether additional cores will be beneficial depends entirely on a program's fundamental intent.

Dividing a process into multiple threads does not mean it will simply run faster. In fact, it can run slower.

Generally speaking -- and by this I mean for most desktop uses -- the initial bump in performance from one to two cores is the greatest multi-core jump one is currently going to see.

Chances are high that you're running more than one application. With two cores available among these running applications' processes, the overall responsiveness of your multi-tasking operating system is increased.

One of the main reasons for this smoother ride is the running processes don't need to wait as long after requesting processing time, as there's another processor available. Quad-core isn't needed for this.

Multi-tasking itself is also given a performance boost. This process doesn't demand much CPU time, however, so once again, quad-core isn't necessary.

This is why within a multi-tasking environment, as unfortunate as you think it may be, a dual-core processor is more than sufficient when the applications themselves can't take advantage of additional cores.

Of course, where several processor-intensive applications are run at once, typically you'll see a linear performance boost with multi-core processors, but this is heading into the realm of the workstation.

As an example, and for the sake of simplicity, let's pretend we have a single-threaded video encoder. Using this application under a quad-core environment, you can encode four videos at once in the same amount of time as a dual-core takes to encode two videos, assuming the same video file and clock frequency.

These applications have no need to communicate with each other, so they can easily occupy their very own, dedicated core. Breaking this processing down to the individual threads of an application, which often share constantly-changing data, is far more complex.

It isn't difficult to spawn threads left, right, and centre. It's complex because the difficulty is in choosing the areas in a process that will actually increase performance.

There are many applications that are multi-threaded, but they don't really see a real-world benefit from this parallelism -- Microsoft Office, being one such example. It just isn't hefty enough to noticeably benefit, as spell-checking and Clippy threads don't exactly push a processor over the cliff (not to be confused with pushing kitchen utensils into Clippy's eyes).

No doubt you've seen the quad-core benchmarks -- allow me to gloat by saying I told you so: I told you so.

Ah, much better.

Synthetic, ideological tests aside, in the real world, there are currently no benefits on the desktop other than those running a workstation or a server.

The only real-world programs that are benefiting from the quad-core processors in comparison to dual-core are in workstation areas such as media encoding, or CPU-bound graphics rendering, be it 2D or 3D.

So why, then, are these applications laughing with four cores but your favourite game is barely forcing a grimace? It has to do with the nature of the data that is being processed. Most of our programs and games on the desktop are procedural, or serial in nature.

Each part of the information that these multi-threaded-friendly programs are processing is static and independent of its neighbour. As these parts are separate, a completely agnostic thread, or group of threads, can be spawned. On top of that, these types of processes are typically capable of taking up most of the available processing power of an entire core.

This leads to another problem -- the need for a program to be able to optimise itself and initiate the right amount of threads based on how many cores are available.

This is much less difficult on a fixed system, such as a console, as the programmer doesn't need to make room for greatly varying environments, be it one, two, or four (or more) cores.

An application must be threaded to support its environment. If there are too many threads available, you slow down due to a bottleneck of threads waiting for processing time, but if you have too little, you're inherently not making full use of the available cores and, thus, an overkill CPU.

Testing and optimising for each possible multi-core environment greatly increases development time for something which may or may not have a significant performance boost. This is one of the main reasons I'm dubious about quad-core on the desktop, which is, and will be for a while, a very small niche.

So what is it in games and other applications that are otherwise resource intensive that is inhibiting them from a significant performance boost every time another core is bunged onto a system?

As I mentioned, the bottleneck is serialised commands that rely on their own or each other's results before they can proceed. As a result, spawning off additional threads helps no one because a bunch of threads are waiting on one thread to finish its job and output a result before another can begin, ad infinitum.

See the problem? These serialised commands are not easily avoided, if at all, in our highly dynamic and procedural desktop applications.

What games have going for them, however, is a number of categorical processes, such as sound, graphics, physics, and AI. Ideally, as these processes are reasonably separable to each other, each could have its own intensive thread processing away on its own core.

In fact, Valve seems intent on convincing the gaming world that quad-core is significantly superior to dual-core because of just this. I'm not convinced that it will be that great, but I'll be excited if proven wrong and Valve releases a game that significantly benefits from four cores as opposed to two.

What's seemingly being overlooked is that CPUs are much less a deciding factor in the performance of games as are graphics cards. Upgrading the GPU has, for some time now, provided a far more significant performance boost over the CPU.


Intel Core 2 Quad CPU minus a heat-spreader: Exposed in all its thready nature.Intel Core 2 Quad CPU minus a heat-spreader: Exposed in all its thready nature.
With stream processing picking up support on the GPU -- and zipping well past the CPU for speed with its supported processing types -- this only serves to make multi-core CPUs far less appealing.

Of course, if you just want to be an early adopter, that's your choice. Unless your specific needs on a computer are at workstation-level, expect to see a dismal performance boost at best.

I won't ever say quad-core will never be useful -- one can never be certain as to where our ever-evolving processing needs will take us in the distant future. But for a while to come, outside of workstation and other niche requirements, desktop quad-core CPUs really are damned excessive.

Drop the placebo pill. Reality beckons.


Post your comment



Comments

RSS feed Email alert

amavida:

Finally someone is speaking up about the multicore lies^^^^marketese.

29 February 2008, 8:28 PM (5 years ago)report abuse Send to a friend reply

raindog:

It constantly amazes me that people looking for a desktop will be forever bamboozled with CPU speeds and a catchy cpu core and family names yet miss the essentials.

The marketers love it, you still see name brand boxes offered with Dual-Core CPU yet only 256Mb of RAM, because they know there is a hard core of number chasers out there, and RAM isn't sexy.

Balance is the key, and any PC is as good as it's weakest parts, maybe one day a few more will catch on. In the meantime CPUs that require more cooling than a nuclear power plant or ones clocked to oblivion and priced accordingly will still be in strong demand.


29 February 2008, 8:28 PM (5 years ago)report abuse Send to a friend reply

steve.wiseman:

It probably is excessive for most computer users out there. But if you are constantly running applications that can support it (Like VMWare) it can be a blessing. I ususally have more than 1 VMWare session open at a time, and I believe that even right now the current version of VMWare can take advantage of the other cores. This alone would make it worth the extra cost. Steve Wiseman Windows Admin Tools

29 February 2008, 8:28 PM (5 years ago)report abuse Send to a friend reply

tin:

Yay... Sensible mentions of quad cores.

I will put my hand up for not beleiving there is enough in a game to demand more than 2 cores aswell.

29 February 2008, 8:28 PM (5 years ago)report abuse Send to a friend reply

Tim Polmear:

I don't think it's a matter of marketing hype by Intel. There are right now Real World people who need the extra capacity the quad core processors will deliver. Namely me for example. As I write, I have a Vue scene rendering on 3 computers (4 cores). It's taken about 5 hours so far. It's not uncommon for Vue users to report render times in days.

Asking whether Intel should be making quad core processors because most people don't need them is like questioning whether Komatsu should really be making the 575, because most gardeners get along just fine with a spade.

29 February 2008, 8:28 PM (5 years ago)report abuse Send to a friend reply

tigrooby:

Would You Need To Buy another Windows Key?

29 February 2008, 8:28 PM (5 years ago)report abuse Send to a friend reply

cry boy:

Surley Directx10 games like crysis & up will benifet alot from quad-core. The only game ive seen running on quad-core was Alan Wake. Which according to the develpers quad-core is surpiror to Dual-core. Anyway i hope 4 cores is the way to go cuz thats what im getting within 3 months no matter what.

29 February 2008, 8:29 PM (5 years ago)report abuse Send to a friend reply

BWoudsma (New user):

Would a quad Core be usefull in an office environment. Here they have multiple applications running. Like Word, Excel and other apps. Would in this case a quad core be usefull?

24 November 2008, 10:29 PM (4 years ago)report abuse Send to a friend reply

anonymous user Anonymous user