Adding several cores to a single processor offers significant benefits thanks to the multitasking nature of modern operating systems. However, for some purposes, there's an upper practical limit to how many cores yield improvements relative to the cost of adding them.
Multi-Core Technology AdvancesTobiasD / Pixabay
Multiple-core processors have been available in personal computers since the early 2000s. Multi-core designs addressed the problem of processors hitting the ceiling of their physical limitations in terms of their clock speeds and how effectively they could be cooled and still maintain accuracy. By moving to extra cores on a single processor chip, manufacturers avoided problems with the clock speeds by effectively multiplying the amount of data that could be handled by the CPU.
When they originally were released, manufacturers offered just two cores in a single CPU, but now there are options for four, six and even 10 or more. In addition to adding cores, simultaneous multithreading technologies—such as Intel's Hyper-Threading—can double the virtual cores that the operating system sees.
Processes and Threads
A process is a specific task, like a program, running on a computer. A process consists of one or more threads.
A thread is simply a single stream of data from a program passing through the processor on the computer. Each application generates its own one-or-many threads depending upon how it is running. Without multitasking, a single-core processor can only handle a single thread at a time, so the system rapidly switches between the threads to process the data in a seemingly concurrent manner.
The benefit of having multiple cores is that the system can handle more than one thread simultaneously. Each core can handle a separate stream of data. This architecture greatly increases the performance of a system that is running concurrent applications. Since servers tend to run many concurrent applications at a given time, the technology was originally developed for the enterprise customer — but as personal computers got more complex and multitasking increased, they too benefited from having extra cores.
Every process, however, is governed by a primary thread that can only occupy a single core. Thus, the relative speed of a program like a game or a video renderer is hard-limited to the capability of the core that the primary thread consumes. The primary thread can absolutely delegate secondary threads to other cores — but a game doesn't become twice as fast when you double the cores. Thus, it's not unusual for a game to fully max one core (the primary thread) but see only partial utilization of other cores for secondary threads. No amount of core-doubling gets around the fact that the primary core is a rate limiter for your application, and apps that are sensitive to this architecture will perform better than apps that aren't.
While the concept of multiple-core processors sounds appealing, there is a major caveat to this technology. For the true benefits of the multiple processors to be enjoyed, the software running on the computer must be written to support multithreading. Without the software supporting such a feature, threads will be primarily run through a single core thus degrading the computer's overall efficiency. After all, if it can only run on a single core in a quad-core processor, it may actually be faster to run it on a dual-core processor with higher base clock speeds.
All of the major current operating systems support multithreading capability. But the multithreading must also be written into the application software. The support for multithreading in consumer software has improved over the years but for many simple programs, multithreading support is still not implemented due to the complexity of the software build. For example, a mail program or web browser is not likely to see huge benefits to multithreading as much as a graphics or video editing program would, where the computer processes complex calculations.
A good example to explain this tendency is to look at a typical computer game. Most games require some form of rendering engine to display what is happening in the game. In addition, some sort of artificial intelligence controls events and characters in the game. With a single-core, both tasks execute by switching between them. This approach is not efficient. If the system featured multiple processors, the rendering and AI could each run on a separate core—an ideal situation for a multiple-core processor.
Is 8 > 4 > 2?
Going beyond two cores presents mixed benefits, given that the answer for any given computer buyer depends upon the software he or she typically uses. For example, many classic games still offer little performance difference between two and four cores. Even modern games—some of which allegedly require or support eight cores—may not perform better than a six-core machine with a higher base clock speed, given that the effectiveness of the primary thread governs the efficiency of multithreaded performance.
On the other hand, a video-encoding program that transcodes video will likely see huge benefits as individual frame rendering can be passed to different cores and then collated into a single stream by the software. Thus having eight cores will be even more beneficial than having four. In essence, the primary thread doesn't need comparatively rich resources; instead, it can farm out the hard work to daughter threads that max out the processor's cores.
In general terms, a higher clock speed will mean a faster processor. Clock speeds become more nebulous when you consider speeds relative to multiple cores because processors crunch multiple data threads thanks to the extra cores but each of those cores will be running at lower speeds because of the thermal restrictions.
For example, a dual-core processor may support base clock speeds of 3.5 GHz for each processor while a quad-core processor may only run at 3.0 GHz. Just looking at a single core on each of them, the dual-core processor is 14 percent faster than on the quad-core. Thus, if you have a program that is only single-threaded, the dual-core processor is actually more efficient. Then again, if your software can use all four processors, then the quad-core processor will actually be about 70 percent faster than that dual-core processor.
For the most part, having a higher core count processor is generally better if your software and typical use cases support it. For the most part, a dual-core or quad-core processor will be more than enough power for a basic computer user. The majority of consumers will see no tangible benefits from going beyond four processor cores because so little non-specialized software takes advantage of it. The best use case for high-core-count processors relates to machines that perform complex tasks such as desktop video editing, some forms of high-end gaming, or complicated science and math programs.
Check out our thoughts about How Fast of a PC Do I Need? to get a better idea of what type of processor to best matches your computing needs.