Does an octa-core processor work twice as better than a quad-core processor? How would you compare them together?
I'm currently doing a module in threading at uni so take this with a pinch of salt but from what we've experienced so far the problem with utilisation is more to do with lazy/poor code than anything else. eight cores will be better than four IF used properly. Although all of our work has been on pc architecture rather than mobile but as long as it's well implemented and the program is sufficiently process intensive then it will speed things up.
thanks. very nice answer!
Kannon's answer is excellent and fairly comprehensive, but I'll try my hand at giving expressing my opinion anyway... The main issue is one of comparing like with like. For one thing, there are no octa-core processors which are precise dupliates of quad-core ones apart from the number of cores. Secondly, to make use of multiple cores, the system and the apps need to take advantage of them. Android does, but beyond 2-3 cores the advantage tapers off sharply, so that a quad core processor tends to be a little better than dual core one, and an octa-core chip will probably be only marginally better if at all.
The other question is what "better" means. In the mobile world, "better" usually means three things faster, but also more efficient and heating up less.
In theory, extra cores will achieve all three since each core could run slower, thereby using less energy and heating up less, while altogether they would run faster than less cores. Also, most of the cores could be switched off leaving only "skeleton staff" to look after the running of the device when it's in idle mode.
The problem, once again, is that Android is not really designed to take full advantage of all cores, and also, as Kannon explains, that the octa-core processors out there don't actually have a particularly efficient design, so that most of those theoretical advantages don't really pan out in practice. What's left is that in some circumstances, you may find an octa-core CPU to be faster than quad-core ones, but at a heavy cost to battery life. Worse yet, most of the time there will hardly be a difference at all.
Thanks for equally huge reply
I would actually argue that Oron answered your question with greater accuracy than my own. He specifically mentioned a serious design flaw in multi-core platforms - each core delivers substantially diminished performance after the first few. I'm not sure if Android has improved their I/O schedulers to handle this design hurdle, but there's around 10% reduction in efficiency per core, after the first. So, for example, on the desktop (this is a rough estimate):
Core 1: 100% utilization
Core 2: 90% utilization
Core 3: 80% utilization
Core 4: 70% utilization
By the time you get to the eighth core, the utilization rate starts dropping to around 30%, which is awful in terms of wattage consumption to performance. In truth, Apple made the right choice in sticking with two cores.
thanks. do you imply that extra cores would give lesser efficiency than the number of cores ought to give? and also waste battery and phone resources?
Yes. "Efficiency" in this sense is the computation power per watt, not the absolute computing power, but as I said, even in absolute terms you are not geting much if any additional performance. And yes, it will waste battery power and phone resources.
Hello Dr. Sunil, that's a great question.
To explain would require elaborating on the kinds of octa-core processors that are available. Right now there are two kinds, which are manufactured by Samsung, Allwinner (pending) and MediaTek (and perhaps a few other firms). First, there are Cortex-A7 based octacore CPUs made by MediaTek. Second, there are octacores based on the big.LITTLE reference design, made by ARM.
The Corex-A7 license was intended to offer a highly efficient, but slow, CPU for low power applications. These came in single and dual-core variants with low CPU frequencies. MediaTek took the design and boosted the CPU frequency far beyond the original design and then boosted the cores to eight. The resulting eight-core design is now not particularly energy efficient and is fast, but that speed is mostly on paper only/theoretical. The reason is that for multicore processors to really shine, they need to have applications that make use of all eight cores. Most apps are designed with a single core in mind. In that respect, it's CPU frequency that makes the biggest difference. Actually, that's not entirely true either, as some CPUs are faster than others, even at the same frequency.
The big.LITTLE reference design combines two kinds of architecture. The highly efficient Cortex A7 (or a quad core derivative of it) and a faster model (I think Cortex A9 or a derivative or evolution of the A9, read the link for more info). In theory, this design should use the A7 for simple tasks and the A9 for more demanding tasks, giving you the best of both efficient cores and powerful cores. Unfortunately, the I/O scheduler (a operating system feature that determines which cores are handling what tasks) used by Samsung hasn't been fully optimized to fully take advantage of big.LITTLE yet. I know that the early versions of Samsung octacore disabled four cores - these are enabled at a later date through firmware updates.
So, in summary, not all octacores are the same. Some are VERY much different from others. Do they provide twice the performance of quad cores? In theory, yes. In reality, only on apps that are capable of taking advantage of all eight cores. Most apps don't and so in reality, no, octacore chips are only powerful on paper.
Thanks for your kind words "great question". Actually it simply came to mind. These days there is a lot of hype about cores in new phone models. So I guessed it might help everyone who reads this discussion. It is your goodness to term it 'great'. With your talent in technology you have put a nice answer. Hope you remember what I had said about 'talent utilization'. thanks, sunil