
Snow Leopard, a.k.a. Mac OS X 10.6
Apple announced this week that it will ship Mac OS X 10.6, code-named Snow Leopard, on August 28. Apple’s official point of view is that this is an efficiency and refinement upgrade of its already excellent desktop and laptop environment. But what I think is more interesting is this upgrade’s impact on Apple’s fastest growing business: the iPhone. Because the iPhone uses Mac OS X as its base, one feature in Snow Leopard suggests that we could see dramatic improvements in battery life in future iPhone versions.
What’s the big feature? It’s a geeky feature called Grand Central Dispatch (here’s an Apple PDF document that goes into details for those that are interested). It’s a new way of coding applications that makes them work seamlessly across one or many processors. It’s one of those programming abstractions that makes it significantly easier for app developers to write software for multi-core systems without all the attendant race conditions and latent bugs that belie today’s thread-based programs. Snow Leopard applications like the Finder and Mail use Grand Central Dispatch (also abbreviated GCD) a lot; it’s one of the features that makes the system feel so much snappier than your garden-variety 10.5 Leopard release, particularly since all current Macs have multiple processing cores. Apple also is encouraging all developers to use GCD in their third-party apps for the same reason.
So what does this have to do with the iPhone? It’s simple: it suggests we’ll see iPhones with multi-core processors and apps built for those multi-cores sometime in the next year or two.
Now I can hear skeptics saying, “How could a phone possibly need multiple processor cores?” And for the most part, they’re right — most phone functions don’t really need multiple processor cores if you have a fast enough processor. The iPhone does just fine with its 600 MHz ARM processor, so adding support for multi-core apps might seem silly.
But when you think about battery life, multi-core suddenly makes a whole lot of sense. The problem is that power consumption increases with processor clock speed, so running processors at high speed depletes battery power faster. On the other hand, if a phone can achieve the same app performance with multiple cores running at slower speeds, batteries can last longer. In some cases, depending on the design and if unused cores are turned off when they aren’t being used, they can last a LOT longer, by factors of 2 to 5 times.
Multi-core apps are not a new idea. Intel, of course, embraced multi-core systems as its strategy for boosting performance when it became clear that continuing its war of ever-increasing clock speeds put it at a power disadvantage to rival AMD. Maynard-based startup SiCortex uses this philosophy to use thousands of “slow” processors (they aren’t really that slow, they just have slow clock speeds) in its desktop supercomputers. The big challenge has always been in coding parallel applications for commercial use. Despite several high-profile initiatives (some are described here) sponsored by everyone from NVidia, AMD, and Sun to Microsoft and Intel, no one yet has come up with any programming breakthroughs that have made their way into consumer electronics products yet.
Assuming my prediction that Apple will launch a multi-core iPhone next year are correct, Apple will be the first company to drive highly parallel OS services and consumer applications into a multi-core mobile phone. And if that helps drive development of iPhones that can run our mobile apps twice or three times as long, this week’s launch of Snow Leopard may have had more strategic import than “just a refinement.”
