It seems the WP community is rather divided on this subject, which is why I wanted to share my opinions on this matter as a software developer. I have quoted some of the comments made in the "Anyone having doubts about the WP8?" thread.
By now, most people realize that having a device with 64 cores will benefit them squat, if the apps they use weren't explicitly engineered to make use of multiple cores. However, many still don't understand that an app that makes use of TWO cores can't necessarily (particularly not automatically) make use of three, four or more cores. It doesn't work that way.
An app developer must "package" up the apps computational load into separate tasks. This packaging only results in a perceptible benefit if:
1) Tasks run simultaneously (in parallel) for a noticeable amount of time. In the best case scenario, tasks run continuously while "spiting out" useful results every so often.
2) Tasks run largely independent of each other
Failing the former means that a packaged up task is so small (possibly running only for a couple of microseconds), that the time saved isn't noticeable and thus irrelevant.
Failing the later means that tasks will spend much of their time waiting on each other (i.e. for intermediate computational results), defeating the purpose of running tasks in parallel in the first place.
So, what's the problem? The problem is that most consumer applications simply don't have the kinds of computational workloads that lend themselves to being packaged up in such a fashion. In all the realm of consumer software, twitch type games are the exception, and even for them making use of any cores beyond the second becomes increasingly difficult.
Even on the PC, were we've had quad-core CPU's for years, you will only very rarely find the occasional game that makes meaningful use of more than two cores (Battlefield3 is one such rare exception). This type of game, which would kill any smartphone's battery in a matter of seconds, simply isn't a realistic proposition for the foreseeable future.
Server software (web-servers or multi-user databases) or graphical rendering applications have completely different types of workloads that are easily distributed across any number of cores. But when was the last time you installed something like that on your smartphone?
In the Android ecosystem, not a single app exists which has anything to gain from running on quad-core smartphones. What Google and Smartphone manufacturers won't tell you is that this isn't expected to change anytime soon... in fact, Google is so sure no app will need more than two cores, that they have "crippled" Android's thread-scheduler to prevent any app from consistently using four cores. They did this in the interest of prolonging battery life. This is actually a good thing, and it proves Google knows what they are doing.
What I'm getting at is that quad-core smartphones are a marketing gimmick used to sell smartphones to low-information enthusiasts.
If you want to learn more I would also suggest reading up on Amdahl's law (google it).
I've picked out a few comments in the hope of clearing up a few common misconceptions:
For WP7 devices, hardware limitations probably are an issue, the main one being the DSP. Memory bandwidth is also of concern. However, the number of cores is rather irrelevant in this regard.
Microsoft has repeatedly stated that they intend to strictly standardize the hardware platform. So far they have followed through with it. As the WP8 hardware specifications state exactly which Qualcomm SoC is to be used, and as that SoC doesn't feature a quad-core CPU, it is pretty much out of the question that any OEM will release a quad-core device.
For the reasons I stated above this is not a bad thing.
If we want faster hardware, what we really should be yelling for are faster cores... not more of them.
Most CPU cores run at either full throttle or not at all. If a performance monitor shows you that one of your cores is running at 50%, that means that during the last second that core was running for half that time. During that half second however, that core was maxed out (somewhat simplified, but it gets the gist of it)!
The likelihood of a smartphone heating up less due to an extra core is rather slim. If that single core could complete the same workload faster and then shut off sooner, say after a tenth of a second, that would be more helpful. Again... we should be calling for faster cores, not more of them.
Quickly, but incrementally. What you are suggesting would need something a bit more disruptive and revolutionary than what we have seen during the last decade, and it will be more related to software than hardware. It certainly isn't impossible, but at this time such an advance isn't just around the corner...
I'm not saying quad-core CPU's are useless. They have many practical uses. Currently we just don't find any of those uses in the realm of smartphones.
What do you think?
By now, most people realize that having a device with 64 cores will benefit them squat, if the apps they use weren't explicitly engineered to make use of multiple cores. However, many still don't understand that an app that makes use of TWO cores can't necessarily (particularly not automatically) make use of three, four or more cores. It doesn't work that way.
An app developer must "package" up the apps computational load into separate tasks. This packaging only results in a perceptible benefit if:
1) Tasks run simultaneously (in parallel) for a noticeable amount of time. In the best case scenario, tasks run continuously while "spiting out" useful results every so often.
2) Tasks run largely independent of each other
Failing the former means that a packaged up task is so small (possibly running only for a couple of microseconds), that the time saved isn't noticeable and thus irrelevant.
Failing the later means that tasks will spend much of their time waiting on each other (i.e. for intermediate computational results), defeating the purpose of running tasks in parallel in the first place.
So, what's the problem? The problem is that most consumer applications simply don't have the kinds of computational workloads that lend themselves to being packaged up in such a fashion. In all the realm of consumer software, twitch type games are the exception, and even for them making use of any cores beyond the second becomes increasingly difficult.
Even on the PC, were we've had quad-core CPU's for years, you will only very rarely find the occasional game that makes meaningful use of more than two cores (Battlefield3 is one such rare exception). This type of game, which would kill any smartphone's battery in a matter of seconds, simply isn't a realistic proposition for the foreseeable future.
Server software (web-servers or multi-user databases) or graphical rendering applications have completely different types of workloads that are easily distributed across any number of cores. But when was the last time you installed something like that on your smartphone?
In the Android ecosystem, not a single app exists which has anything to gain from running on quad-core smartphones. What Google and Smartphone manufacturers won't tell you is that this isn't expected to change anytime soon... in fact, Google is so sure no app will need more than two cores, that they have "crippled" Android's thread-scheduler to prevent any app from consistently using four cores. They did this in the interest of prolonging battery life. This is actually a good thing, and it proves Google knows what they are doing.
What I'm getting at is that quad-core smartphones are a marketing gimmick used to sell smartphones to low-information enthusiasts.
If you want to learn more I would also suggest reading up on Amdahl's law (google it).
I've picked out a few comments in the hope of clearing up a few common misconceptions:
I don't know if our current devices not being able to take pictures while recording is because of hardware limitations or not.
For WP7 devices, hardware limitations probably are an issue, the main one being the DSP. Memory bandwidth is also of concern. However, the number of cores is rather irrelevant in this regard.
But what I'm afraid of is that there aren't coming any quad cores in the beggining and we are going to keep playing the catching game. Seeing other brands being able to receive apps that WP8 can't receive because the available phones don't have enough horse power is not going to be nice. But then again, I really hope that I'm wrong.
Microsoft has repeatedly stated that they intend to strictly standardize the hardware platform. So far they have followed through with it. As the WP8 hardware specifications state exactly which Qualcomm SoC is to be used, and as that SoC doesn't feature a quad-core CPU, it is pretty much out of the question that any OEM will release a quad-core device.
For the reasons I stated above this is not a bad thing.
If we want faster hardware, what we really should be yelling for are faster cores... not more of them.
- the phone heats up? I blamed HTC for months, only until I realised that Lumia 800 was exactly the same. I believe most of the WP (single cores) are the same? Probably because our normal tasks that run so smoothly max out our CPU all the time? But with multicore, even though we don't "need" it, perhaps it wouldn't heat up?
Most CPU cores run at either full throttle or not at all. If a performance monitor shows you that one of your cores is running at 50%, that means that during the last second that core was running for half that time. During that half second however, that core was maxed out (somewhat simplified, but it gets the gist of it)!
The likelihood of a smartphone heating up less due to an extra core is rather slim. If that single core could complete the same workload faster and then shut off sooner, say after a tenth of a second, that would be more helpful. Again... we should be calling for faster cores, not more of them.
Technology advance quickly these days. There will be SOME function that can utilize that quad core spec. Who knows what.
Quickly, but incrementally. What you are suggesting would need something a bit more disruptive and revolutionary than what we have seen during the last decade, and it will be more related to software than hardware. It certainly isn't impossible, but at this time such an advance isn't just around the corner...
I'm not saying quad-core CPU's are useless. They have many practical uses. Currently we just don't find any of those uses in the realm of smartphones.
What do you think?
Last edited: