Where The Puck Is Going

The Door

I alluded to some fictional future tech the other day, specifically ARM-powered Macbook Airs. My reasonings, let me show you them.

  • With OSX 10.6, Apple announced Grand Central Dispatch, a framework for managing multithreaded programs across multiple cores, which they released, surprisingly, under the Apache open-source license. This gives programmers who take advantage of it an easy way to take good advantage of multi-core processors without the usual agonies of threading. You might not think this is a huge deal when we’re talking the usual two- or four-core processors on most modern machines, but
  • Apple is one of the very few licensees of Imagination Technology’s SGX543MP2-16 ARM chips. In terms of performance, the cutting edge there is not quite as fast as your current Atoms, but there’s sixteen general-purpose GPU cores in those chips, plus a pair of 3D GPUs and 2d and crypto acceleration thrown in for kicks.
  • One of the neatest thing about these chips is that you can actually power down individual cores to save power, and fast enough that you can do it between frames of playing video. Relatedly, this is something PA Semi was also very good at before Apple bought them – aggressive power management on ARM-based systems. In terms of pure processing power ARM is not as fast as the best processors that Intel has to offer but in per-watt terms x86 doesn’t even come close. That plus 16 cores plus GCD is going to be a hard act to follow for anyone in the portable space stuck in Intel-land.
  • Microsoft has asked Intel to produce a 16-core Atom chip, it was reported earlier this year, despite the fact that they’re pushing towards ARM as well.

… and Apple has their annual World Wide Developer Conference coming up in June. My predictions are as follows:

  • Apple’s next generation of laptop hardware will run ARM chips, likely starting with the Airs. They’ve pulled this switch off before in their move from PPC to Intel and their insistence on total vertical control of the development environment is what lets them do it; the App Store model is only going to make that easier. They’ll announce this at WWDC, and it will look a lot like the PPC-Intel move did – if you’re using XCode, the next version of XCode has a checkbox in it saying “ARM” that you’ll click and be fine. If not, you’re basically 100% fucked.
  • At some point late in the year we’ll learn that Adobe doesn’t develop for Macs with XCode. They’ve got their own proprietary thing, because that’s the sort of thing they’d do.
  • Windows 8, definitely ARM support and probably all of it, is going to ship late. Microsoft is going to be in a lot of trouble in the laptop space late next year, because without ARM support they won’t be able to sell a product with competitive battery life.
  • In the longer, vaguer term, processing power per watt is going to be the most important computer metric of the next decade. Virtualized services running on ARM blades are going to displace everything that doesn’t require screamingly fast sequential computing as close to the bare metal as possible, which is to say “almost all of it”. In two years your more expensive 2U servers will have several hundred processor cores in them, consuming less power than your beefier 2U servers to today.
  • Steve Ballmer will lose his job by 2012 or Microsoft continues its long slide into irrelevance.

We’ll know in a few months!

5 Comments

  1. Posted April 7, 2011 at 3:34 pm | Permalink

    The card you’re palming is the part where mostly-single-threaded apps suddenly turn massively parallel in an efficient and easy way.

    Atom performance is not fast enough to make most people happy these days (see reviews of the Cr-48 machines, for instance). ARM is slower than Atom. Most apps don’t get much benefit from multiple cores, and most of those that remain don’t get much benefit from more than two cores.

    Multicore ARM is clearly how phones/tablets are going to evolve upward, but I don’t think you can devolve PCs into that without a much larger discontinuity than the one you’re talking about here. (And I believe this is where ChromeOS has a chance, as something that bridges the traditional keyboard form factor with the minimalism and ARM-friendliness of modern portable OSes.)

  2. mhoye
    Posted April 7, 2011 at 6:40 pm | Permalink

    An excellent analogy: I am palming that card. And not because I don’t have it, but because I can’t show it to you.

  3. Posted April 8, 2011 at 12:18 am | Permalink

    While it’s true that turning mostly-single-threaded programs into massively parallel ones is not the kind of thing that happens overnight, or indeed with a mere forty years of engineering effort, but things are starting to get very interesting in that space.

    The CR-48 thingy is a great example of a single Atom core not really being enough to get the job done, but given the way that Chrome deals with multiple processes and the fact that sufficiently modern operating systems can actually scheduled tasks _reasonably_ well across multiple cores, it’s not unreasonable to imagine having one core per tab (or even more than one core, if you’re also running plugins, web workers, or hitting the audio and video APIs). That’s one of the reasons I’m watching Mozilla’s Electrolysis project with great interest. I keep hoping for more to happen on that front.

    I’m not saying that one browser turning into a platform which can take advantage of multiple cores implies that everything can – far from it – but it’s such an important platform that this case alone will go a long, long way toward making highly multicore machines useful and desirable to end users. The kinds of programs that people still actually run which _can’t_ take advantage of multiple cores are trending toward ever greater overlap with the category of programs people buy from GameStop (or Steam these days, really). Even then, there are just a few more people playing World of Warcraft than, say, Crysis, and the components of the former which require significant system resources (particle effects and network lag compensation) either parallelize pretty well or are limited in effectiveness by externalities like network quality.

    Most applications may not benefit from more than one core, sure, but weight that according to how much time users spend in applications which _can_ and you get a different picture, and I would argue a very promising one.

  4. Posted April 8, 2011 at 7:00 am | Permalink

    I have one point, and one counter-point, not in that order.

    Counter-point:
    “At some point late in the year we’ll learn that Adobe doesn’t develop for Macs with XCode. They’ve got their own proprietary thing, because that’s the sort of thing they’d do.”

    Yes, that’s the sort of thing you do when you develop large cross-platform software (like Mozilla, say). It’s all well and good to “just use XCode” if the only thing you’re doing is developing software for OS X or iOS, but that won’t get you very far if you’re also shipping on other platforms. Even with that being said, “just check ARM” is not exactly how it works either. If your application is not terribly complex, then recompiling it for ARM may not be a big deal. If your application is complex, then porting is a significant amount of effort.

    Point:
    I think you’re looking at it from the wrong angle, honestly. Why bother moving OS X to ARM when they’ve already got a perfectly good operating system that runs on ARM? iOS is doing quite well, and it’s not hard to squint and see an iPad turn into a Macbook Air. Honestly, that’s what I thought their big reveal was going to be with the most recent Macbook Air anyway. “Oh, by the way, it runs iOS.” They’ve already ported most or all of iWork and iLife, so I don’t think it would be a tough sell for most people. I’d look for signs that they’re merging the Cocoa and UIKit APIs, since (aside from the CPU architecture) that’s the most significant difference. If they make that simpler or non-existent, then porting OS X apps to iOS would be a lot easier.

  5. mhoye
    Posted April 8, 2011 at 9:12 am | Permalink

    Well, in re: checkbox, of course it won’t be that simple. But that’s how simple Apple will say it is!