"Multiprocessing has been adopted as a marketing tool," say Cornero and Anyuru, "this is used to pass the oversimplified message that more processors mean better platforms and performance."
"The performance of single-processors in mobile platforms is still growing and, from a software performance perspective, it is more profitable today to focus on faster dual-core rather than slower quad-core processors," say the authors.
Multiprocessing is not adopted from choice - it is a necessity imposed when frequency scaling reaches a chip's heat dissipation limit.
But scaling continues to deliver more transistors, and multiprocessing is the only way to keep exploiting the increase in transistors.
"Although counterintuitive, one microprocessor at a given frequency consumes more power than two cores at half the frequency," say the authors, "this is due to the fact that a higher voltage is needed for sustaining higher frequencies, combined with the fact that dynamic power consumption grows quadratically with respect to voltage."
The penalty for adopting multiprocessing is "a fundamental disruption in software performance scaling."
For multiprocessing, software has to be written to map efficiently on the multiple processors, i.e. it needs to be "parallelised."
"Too bad that software paralleliation is still one of the toughest challenges in computing in general, for which no satisfying general-purpose solution in terms of productivity has been found yet, despite the initial enthusiasm and for many intrinsically serial applications there are no solutions at all," say the authors.
"The problem is so difficult that very little progress has been made in the last decade in PC applications," point out the authors, "after a decade most software, including demanding games, office applications, multimedia playback and Web browsing, still shows a good use of two processors only, with very few applications (like video authoring) being able to use more. The fact is that, except for very few applications, PC software in large hasn't been parallelised at all since the introduction of multiprocessing a decade ago. "
The paper concludes that: "Like for PC, software scales proportionally with single-processor performance, while depending on the application, it scales less than proportionally or not at all for multi-processors."
The situation is, of course, completely different in data centres where multi-processing scales well with the parallel workloads.
As there is still headroom for single processor performance improvement in mobile phones, why have mobile phone vendors moved to multiprocessing?
"The interesting question is: why have mobile platforms jumped into multiprocessing well before reaching the single-core performance saturation?" asks the paper, "we can think of two main reasons: dual-processors can be exploited effectively by modern operating systems, and the fundamental technologies required, such as cache coherency and multiprocessing capable operating systems, were already in place," say the authors, "the second reason is aggressive marketing."
For quad-core the justification is much less. "What is less clear is the motivation to move to quad-processors, since the PC experience tells us that even after a decade of multi-processors in the market, using more than two processors is useless for the large majority of the software," says the paper, "the only technical explanation would be if mobile software were fundamentally more multiprocessing-friendly than on PCs, but this is not yet the case."
"The fact is that there are no strong technical reasons. The motivation appears to be all in the marketing," conclude the authors, "like they did with PCs, people will soon realize that the number of cores in a mobile device does not correspond to true value added for the customers. "
For web browsing "very little or no advantage at all is measured when moving from dual to quad-processors, for lack of sufficient and well-balanced software parallelism needed for exploiting more than two processors," says the paper, "given the already mentioned small level of effective software parallelism, a faster dual-processor easily outperforms a slower quad-processor."
"We have performed similar experiments on other important applications, like mobile video games, application start-up time, and even multimedia, obtaining similar results over and over again: marginal or no benefits at all when moving from dual to quad-processors at the same frequency, and 15-20% faster dual always beating slower quad-processors," says the paper.