A recent post on Android Guys (a very good site for Android news and information, BTW, I highly recommend it), tries to imply that moving to multicore machines for phones and tablets is a big deal. The article covers very old ground as to the benefits of a multicore processor. I’m just not sure it’s as hard or as ominous as the author tries to make it out to be. Why? The heart of Android and iOS are kernels that already run successfully and efficiently on multicore and multi-CPU machines today. Android is effectively Linux, albeit somewhat stripped down, but the heart of the system is still there. iOS is basically a mobile version of MacOS, which itself is a variant of BSD. Both of these run quite well on multicore machines (or they better, given that my Macs and Linux boxes are all multicore). I’m not sure how much of the Windows kernel made it into Windows Phone 7, but even Windows 7 is a pretty decent system for multicore/multi-CPU setups.
And it isn’t as if multicore/multi-CPU architectures are new here. Commercial operating systems have working with SMP-enabled servers for many, many, many years now. Multicore didn’t change the dynamic that much, it mainly changed the packaging. Dealing with thread-safe memory management, thread-save device access and thread scheduling is a well-known and well understood problem, with the basic research going back more than 2 decades. This isn’t exactly new stuff we are talking about here. There is a generation of software developers who have spent their entire career using nothing but multicore machines.
Will it be a big deal for app writers? No, not really. I’ve already done a bunch of work with multithreaded apps on both iOS and Android (and one experiment I’m working on explicitly depends on it). Again, designing, coding and maintaining multithreaded apps isn’t exactly new. It is a well-understood problem that many, many people are already familiar with. Putting a multicore machine under the covers will potentially let those apps run better, but the concepts and principles remain unchanged.
Does the impending rise of multicore mobile devices change things? A bit. It brings more processing power into our pockets, and it may help reduce electrical power consumption. It may also make it easier for people to write far more powerful apps, but at the same time make it easier for
lazy some people to write apps poorly but still perform well. From what I’ve heard, QNX and RIM’s PlayBook depend on it to get their performance. Rumour has it the upcoming iPad 2 (or whatever Apple calls it) will include it.
In the end, this development isn’t entirely a surprise and shouldn’t be unexpected. It also isn’t something to be feared or for people to be worried about. It is an inevitable technology change that was going to happen at some point, it just may be happening sooner than people expected or thought.