- 08-13-2012, 09:06 AM #1
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 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 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.
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 by a5cent; 08-14-2012 at 06:57 PM. Reason: Spelling
- 08-13-2012, 09:18 AM #2
I say bung as many cores in there as possible, because the uninformed include so called "tech journalists" who have no clue and will mark a handset down if it doesnt have specs as high as their fav device. So I say 64!!
- 08-13-2012, 09:28 AM #3
- 08-14-2012, 12:41 AM #10
Dude...dont let people talk you down. Do what you believe in. Your thread is very informative, so keep it up. Don;t forget, if 100 people will flak you, there will be at least 10 who will understand you and appreciate what you are doing. And remember, only those 10 matter.
- 08-14-2012, 04:52 AM #11
So, assuming our definitions of "smooth" are similar, WP only needs a fraction of a single core to give us that (basically, CPU cores will sit around twiddling their thumbs while the GPU races though millions of pixels). You should be careful what you wish fore, as I'm sure you would want more than 1/10th of a core in your phone ;)
Samsung Odyssey? I did a quick search. The first three sites all stated it will be a dual core device. I wouldn't want to rely on that though. Tech journalists generally haven't the foggiest what they are actually blogging about. I prefer to read Microsoft's strategy papers and understand their policies concerning their cooperation with hardware manufacturers. Microsoft has stated that the only SoC currently certified for WP8 is the Qualcomm Snapdragon S4 Plus. Take a look at Qualcomm's high-level specifications for that SoC... you will notice it is a dual core SoC:
Snapdragon™ Processors | All-in-One Mobile Processor | Qualcomm
Unless I am unaware of a recent policy change, there is no snowflakes chance in **** of any quad-core WP8 device coming out any time soon... that includes the Samsung Odyssey.
From a technical standpoint, that is the most reasonable thing to do. It may not be the best marketing arrangement.
Finally, if some WP8 devices had two and others four cores, WP would loose many of the advantages it currently has over android. This would mark the beginning of major hardware fragmentation in the WP ecosystem. This should be prevented at all costs. Microsoft understands this very well. So far they have made many tough decisions in the interest of keeping hardware and software fragmentation low (virtually non-existant). Although possible, it is unlikely Microsoft will start changing these policies now.
Last edited by a5cent; 08-14-2012 at 06:18 AM. Reason: Added a paragraph to the end
- 08-14-2012, 06:48 AM #12
I am a software guy, so I can't speak with authority on what is currently available in the mobile SoC market. As far as I know, ALL mobile SoC's force their CPU cores into the lowest possible energy state when they are not under load (turned off completely). That is what I meant when I stated that cores run at "full throttle or NOT AT ALL". I am not aware of any SoC's that dynamically overclock (likely due to power consumption issues), but most lower their clock rates (underclock) as soon as more than one core becomes active. In that sense you are certainly correct that the definition of full throttle can change based on power and temperature restrictions.
Last edited by a5cent; 08-14-2012 at 05:26 PM. Reason: Spelling
08-14-2012, 07:15 AM #13
- 752 Posts
I like the original post except for one thing. We don't truly know what is around the corner or how fast it is coming. The rate that technology is advancing is astounding. At first technology was a crawl, but not it's a little more than a swift jog. For people who keep their phone for the duration of their 2 year contract they could POSSIBLY be future proofing themselves. For people who swap phones like they swap underwear, this is a non issue because they will just get the next phone that will finally be able to actually use all 4 cores. That 4 cores thing is a gimmick, but it's a gimmick that is selling. The HTC One X still suffers from lag at times. Why? Because like you said....not using all for cores. Isn't that UI being offloaded to the GPU anyways?
All in all, very educational and well thought out post. Me likey. I'll still probably buy a quad core phone from HTC. Not because of the cores, but because of the size of the phone. 4.7 inches is what I want.
08-14-2012, 07:26 AM #15
- 752 Posts
- 08-14-2012, 08:15 AM #16
- 08-14-2012, 09:05 AM #17
As we are talking about smartphones, the most relevant technological advancements are the ones made in the semiconductor and software industries. Neither of these industries have seen any major technological breakthroughs in the last 15 years.
What you describe as "an astounding rate of technological advancement" stems mostly from the the process of miniaturization. Nothing revolutionary. In fact, many in the scientific community would argue the opposite of what you are saying, namely that the rate of technological advancement in the semiconductor industry is slowing (which I agree with):
The death of CPU scaling: From one core to many — and why we’re still stuck | ExtremeTech
Anyway, my point is that this problem won't be solved by incremental improvements. To solve this problem, we truly need something revolutionary, which will unavoidably involve freeing the developer from having to package up these tasks him/herself. Some "magical" mechanism would need to do this for us... something that could take the simplest fart app and automatically distribute that (modest) computational load across 64 cores if that is what the fart app is running on.
The computer science community has been poking at this problem for the last 20 years. Even if they did achieve a breakthrough tomorrow, it would still take many years for it to filter down into commercial software development. At least that is how it has been ever since the birth of the IT industry in the 1950's.
No, I don't have a crystal ball either, but I know how this industry works. What you are hoping for isn't impossible, but like I said... it isn't just around the corner.
My home computer from the 1990's (Amiga 500) had a single core CPU and was clocked at 8MHz (MHz, not GHz, that is over 120 times slower then what we've got in our smartphones today). Yet it had no problem with super smooth sub-pixel scrolling and it could even do simple 3D graphics without hardware acceleration.
The reasons Android devices stutter are all software related:
1) Hardware manufacturers are often incompetent software developers. Most of them simply don't care how inefficient the software driving their hardware is (looking at you HTC).
2) Background tasks that arbitrarily start running and bog down the CPU while you are trying to scroll the UI (this is one of many reasons why the developers of WP and iOS opted against real multitasking)
3) The developers of Android having no clue what hardware configurations their OS will ultimately run on. So although they do offload UI rendering tasks to the GPU, they have no idea what the performance characteristics of the GPU might be (iOS and WP have major advantages in this area, as the developers of iOS and WP know exactly what hardware their OS' will be running on).
4) Many many other reasons I won't bore you with...
The notion we need more cores just to get decent UI performance is ridiculous. It's like saying, if you mount an extra set of wheels on your car (3 axis instead of two) you will be able to drive faster.
Hope I could clear that up.
Last edited by a5cent; 08-14-2012 at 11:25 AM. Reason: Spelling
- 08-14-2012, 09:47 AM #18
- 08-14-2012, 09:52 AM #19
It goes into some of the reasons for the notorious Android lag and how all that mumbo jumbo happens. Very interesting read.
Also, Amiga 500!!! Rock on! :) Oh the memories... Best computer ever! :)
- 08-14-2012, 11:08 AM #20
Anyway, thank you. Very interesting read indeed. Some of it I knew, but many of the finer points were totally new to me! It just goes to show how involved just moving a bit of content around the screen actually is, and how much of this stuff we take for granted.
Last edited by a5cent; 08-14-2012 at 07:07 PM.
- 08-14-2012, 12:05 PM #21
Microsoft has always made it very clear that platform standardization is very important to them:
Windows Phone 7 brings all the advantages of a standardized platform and a consistent developer experience to the Microsoft platform
source: Chapter 1 - Introducing Windows Phone 7The Windows Phone Application Platform, like most platforms, will continue to evolve over time, but its goal will always be to deliver:
- Richer applications, developed for a highly standardized platform.
source: Application Platform Overview for Windows Phone
I think things got out of hand when Microsoft stated WP8 can support up to 64 cores. While that is true, it doesn't say anything about the hardware Microsoft certified for use with WP8.
- 08-14-2012, 03:15 PM #23
- 08-14-2012, 05:04 PM #25
HTC released it's roadmap for WP 8 immediatly after the WP 8 announcement. And it also was released as a Quad-core on the Zenith. I feel you are correct, and this will be a dual-core when it comes out. But so far no further updates on it.
HTC Windows Phone 8 roadmap leaks out"So I recommend having fun, because there is nothing better for people in this world than to eat, drink, and enjoy life. That way they will experience some happiness along with all the hard work during the days God gives them under the sun."