Monday 23 March 2015

Are Multiple Cores Better Than One?

Multiple Cores CPU

Aaron Birch examines whether multiple slower cores are faster than a single speedy one

Advancement and innovation is one of the best things about PC technology and it's one of the reasons so many people choose the PC as their platform of choice, be they workers, social butterflies or gamers. The simple fact that the PC you buy today probably won't be the same as the one you run tomorrow makes the whole thing far more attractive. Unlike many other devices, you're not stuck with the exact same thing you buy months or even years down the line. You can upgrade them, refitting parts and boosting your PC's power and capabilities. Better graphics, more memory, a more capable audio card - it's all possible, with even the CPU, the brain of the computer, being upgradeable.


It's this central upgrade that we're going to focus on today, as we attempt to shed some light on some common misconceptions and general confusion surrounding the central processing unit. Particularly, we're going to look at multiple cores and see what they're all about, how they work and, more importantly, if they're actually any use.

Is a single 3GHz core faster or slower than a dual 1.8GHz model? Do we really need to use multiple cores in order for our PCs to handle more than one task at once? And is it viable to run older, single core CPUs? Let's find out.

Better With Friends?


We're always getting questions sent into us on the topic of CPU power and multiple cores, and this is very understandable. On the face of it, the whole speed issue of such processors is about as straightforward as a pathological liar lecturing on how to give political speeches. Why on earth would you want to trade in your powerful 3GHz CPU for one that's only rated at 1.5GHz, even one that has multiple cores? If you have a dual-core 2GHz model, would a 1GHz quad-core actually be an upgrade?

The short answer here is yes. It all comes down to numbers and the fact that today's PC specifications aren't all about clock speeds. Instead, we judge a lot of PC performance by its architecture, and here we're looking at how many CPU cores a system has.

For example, a single-core Pentium 4 may run at 3.2GHz, whereas a dual- or quad-core CPU can have a clock speed of only 2.5GHz. You may think, going from the numbers, that the P4 is faster, but you'd be wrong. The quad-core may have a slower CPU clock speed, but there are four independent cores, each running at 2.5GHz. With four CPUs running at the same time, this grants the PC more processing power. It's the perfect example of the saying 'two heads are better than one', except with little bits of silicon.

But why are multiple cores a thing? Surely it would have been easier to simple keep making single cores faster, wouldn't it? Actually, no it wouldn't, and CPU developers soon hit a roadblock when trying to produce faster and faster chips.

As the speed and power of CPUs grew, so too did the power requirements and the heat generated by this computational muscle. The more powerful a CPU became, the hotter it would run, and the more power it required for all of its advanced speed. This caused problems in terms of PC architecture and power consumption, and cooling became a problem. Basically, there was a physical limitation on taking a single processor further and the effort needed to cool such CPUs was unworkable. A new solution was needed, hence the move into multiple cores.

Having slower, multiple cores working together uses less power and in turn produces less heat. This unshackled manufacturers once more and opened up a whole new avenue of CPU research. With the ability to utilise several cores, CPUs could effectively run a speed way in advance of single-core models, and multiple threads were the key.

Threading The Needle


The advent of multiple cores mounted onto a single CPU opened up the possibilities of real multi-tasking thanks to multi-threading.

For the layman, the term thread is what we call a single stream of data that's being handled by the system, passed from the program to the CPU to handle. This is an obvious benefit in terms of multi-tasking, as a multicore CPU can handle more than one thread at a time, whereas a single-core CPU cannot. What's more, although many programs may only utilise one thread at a time, some use more, so even when running a single program, a multi-core CPU can yield better performance. Of course, running multiple programs at once is the major trick up a multiple-core CPU's sleeve, and in most cases, systems with such a chip fitted are faster, able to run more programs at once more efficiently. Singlecore CPUs can run more than one program at once; we've been multi-tasking with PCs since long before multiple-core CPUs were created, but overall, the performance hit a system takes here is greatly reduced when you can handle multiple threads with dedicated, separate cores.

Still, to make the most of a multi-core CPU, software has to be developed that can actually utilise this technology, and this is where a good deal of bottlenecking can happen. Although multi-core CPUs will run most programs with no problems, regardless of their design to utilise more than one core, programs won't run any faster on a multi-core CPU if they're not developed to do so. These kinds of program will simply use a single-core, so they won't show much of an improvement.

Still, even with programs such as this, benefits can be seen, and running multiple programs of this type may still demonstrate increased overall PC performance, as different programs can run on different cores. So even if you're running older programs that know nothing of this multi-core technology, you may still gain performance boosts. You'll still need an OS that supports multiple cores, of course, so that old copy of Windows 95 won't really cut it.

This does have a major downside, though, and one that results in a lot of questions about the pros and cons of more, slower cores or faster fewer ones. If a program cannot make use of multiple cores and only runs on a single one, will it actually run slower on a 1.5GHz CPU quad-core than it would on a 2GHz dualcore? Yes, probably, as each individual core on the quad-core model is slower than the dual-core, so if a program uses only one, it'll have a slower CPU speed to work with. This means that users who run a lot of older programs may actually benefit from running an older CPU, as this will often result in better performance.

This is the major side-effect of the evolution of the CPU. Multiple cores came from both a technical limitation, as we explained earlier, and also from
a need for more computing power in high-end servers. Network servers usually run a wide range of programs all at once and serve large numbers of workstations. This necessitates the need for faster processing of more programs at once, hence the suitability of multiple cores. And as server software is specialised for this task, it's almost always written to make use of this tech. Home PCs have embraced multiple-cores for many years now, but a lot of software still fails to make proper use of this.

Hyper-Threading?


Intel may be one of the biggest CPU manufacturers in the world, but despite this, in many ways it hasn't made things any easier for less experienced PC users when it comes to making the technology more approachable. A good example is Hyper-Threading.

Often confused with threading and multiple cores, Hyper-Threading is a different technology and doesn't have the same effect as multiple cores. It also doesn't magically turn a four-core CPU into an eight-core either, despite what Device Manager may say.

Basically, Hyper-Threading is a clever bit of technology used by Intel to artificially speed up its CPU cores. It creates a virtual, second thread for each CPU core, meaning that data is always ready to be passed to the CPU with little to no downtime. A common analogy used to help explain this is eating. Replace the CPU core with your mouth and the core's thread with your hand. With one mouth and one hand, you can pass food to your mouth and consume it, you can then grab some more food, but you may finish eating before you get more, meaning there's a period of time when your mouth is waiting and doing nothing.

Now, with two hands, you can constantly grab food, eat it and have more ready to go, with no interruption. This second hand is the Hyper-Threading and is how Intel's technology helps speed up your system and why Device Manager may report you have twice as many CPU cores as you actually have.

Is Hyper-Threading useful, though? Well, yes and no. If applications can make the most of multiple threads or you run a lot of separate applications, Hyper-Threading can help speed up your PC, as more information can be handled in a shorter time. However, just like multiple cores, some programs are not designed to support this and multiple threads won't work. In these instances, there's no benefit at all, and in some rare examples, it may even result in a negative performance impact. Hyper-Threading can also generate more heat and use more power.

If you're not sure about Hyper-Threading's use for you, check the kinds of software you're using or give things a test run without it. Hyper-Threading can often be toggled in the system BIOS, so try turning it on or off and see what happens.

Clocking On


Although PC performance isn't as heavily reliant on numbers these days, clock speeds are still an important specification, and higher clock speeds are still faster than lower. The difference with multi-core CPUs is the fact that each core runs at this base speed, and this needs to be taken into account.

Now it's not as simple as adding all core speeds up into one large, mega score; that's not how it works. Instead, it simply means that each core can handle programs at its speed, with the other cores doing the same. That core speed isn't hacked up as much between programs as it would be with a single, faster core.

The main reason multiple-core CPUs often run at slower core clock speeds than models with fewer cores is thermal restrictions. Simply, the higher the clock speed, the hotter the CPU, and because multicore CPUs have multiple cores running at their own clock speeds, if they were any faster, overheating would become a serious problem.

As with threading, core speeds and their benefits vary, with the two being interconnected. Just as multiple threads can enhance multitasking, so too can multiple cores with higher clock speeds. If a program supports multi-core CPUs, it'll be able to make use of multiple cores, each running at that clock speed. Programs that can't do this will be limited to a singlecore and that clock speed.

So a compatible program running on a 2GHz quad-core CPU will make use of all cores and the full, combined speed. A program that can't will only use one 2GHz core, meaning that a 3GHz dual-core model will suit better, as the cores run faster on their own.

What's Your Poison?


It's common for may users to notice this variance in speeds, often noting that older CPUs appear to be running faster than more up to date models that feature multiple cores, and in almost all situations, it's the reasons we've explored here that cause that. At the end of the day, the performance you get out of a processor depends on what you put into it and what you actually use your PC for. This is because programs boast assorted needs and can make use of different specifications.

Let's look as a few, starting with the prime example in the home and that's gaming. Games are very complex programs, with many layers of specialised code and functions running at once. There's the visual rendering, audio, game engine, artificial intelligence and much more, all being processed and run in real time. This takes a lot of processing muscle, and it's here where multiple cores come in very handy. Now that games are able to separate tasks, delegating them to dedicated cores, it means they can run more efficiently and, technically, more can be done. With the arrival of CPUs that can also take on some processing usually handled by the graphics card and vice versa, this is eve more applicable.

Games are often developed to make use of multiple cores and are a great example of where the technology really comes into its own, but gaming isn't the only use for multiple cores in the home and actually doesn't make the most use of multiple cores. This falls to a couple of other tasks: video editing and 3D rendering.

Video editing is a major focus for multi-core CPUs, as this is a task that requires a lot of heavy duty processing, and the majority of decent video editing tools make full use of multiple cores and threads, greatly improving the PC's editing capabilities and making it a far more viable task to perform in the home. Would YouTube have become so big, so quickly if not for the processing power of multi-core CPUs? Maybe not. Just try comparing video rendering times between a single- and multiple-core CPU to see what we mean.

Likewise, 3D rendering is another task that can push a CPU to its limits, as a huge amount of data is handled for each and every frame of the process. Even CG movie studios like Pixar, with its enormous and powerful render farms, can take days just to render a couple of minutes of film, so having multiple CPU cores helps greatly and can speed up the task.

In Conclusion


Now that we understand a little more how multiple-core CPUs work and the differences they bring to the mix, can we say which is best and if multiple cores are better than one? Yes, we can - for the most part.

Multiple-cores are, in most circumstances, the better option, as they allow more efficient handling of data and grant the most power thanks to more than one CPU core, even if each core is technically slower than a single or even double core. Programs that can handle multiple-cores and make use of multiple threads will always run faster on these types of CPU, and modern PC hardware really does benefit from more up-to-date CPUs.

If you're running a lot of older software, however, or your PC is older, a multi-core CPU may not actually be as fast as it would be with an older, single- or dual-core system, because the programs you'll be using just can't make full use of the new tech, and those extra cores and multiple threads will be wasted or even contribute to slower performance than normal.

So as is the case a lot of the time, it all comes down to your own PC use, and you need to pick the best option. Now that you know more about multiple cores and their details, you should be better armed to make this decision.