Multi-Core Technology Advances

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.

Software Dependency

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.

Clock Speeds

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.

Conclusions

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.