Inside Snow Leopard's under-the-hood additions
Snow Leopard features several new under-the-hood technologies that, at first glance, might seem to be of interest only to Mac software developers. But those technologies will in fact benefit regular Mac users—if not right now, then in the not-too-distant future. Here’s a look at how three of these additions to Snow Leopard—64-bit computing, Grand Central Dispatch, and OpenCL—work and how they could improve your Mac experience sometime soon.
From 32 to 64 bits
Three years ago, Apple trumpeted the fact that Leopard would support 64-bit processing. Back then, the announcement seemed more academic than exciting, since only high-end Macs had 64-bit processors. But these days, every Mac model is powered by a 64-bit CPU (from Intel’s Core 2 Duo and Xeon lines). That’s why 64-bit support in Snow Leopard is relevant to all of us: Apple has updated just about every program and subsystem that’s a part of Snow Leopard to run in 64-bit mode.
There are two reasons this is a good thing. The first is simple: You need a 64-bit OS if you want programs on your computer to have access to more than 4GB of RAM. Snow Leopard can address a staggering 16 exabytes of RAM. It’ll be a while before computers with that much hard-drive storage—let alone RAM—are in wide use. But moving to 64-bit computing does give future Macs plenty of breathing room.
While there are distinct 32- and 64-bit versions of programs and operating systems on the Windows side, on the Mac there’s just one version of everything. Snow Leopard will run on a 32-bit system (like, say, an Intel Core Duo iMac) just fine. But that’s only because each of Snow Leopard’s applications actually contains two versions of the program, nestled inside its application package—a 32-bit program file and a 64-bit version. (It’s the same system that Apple used to let developers embed PowerPC and Intel versions of their apps in single application packages.) When you double-click on the app, Snow Leopard senses whether you’re in 64-bit or 32-bit mode and launches the proper version. (If for some reason you’d prefer to run the 32-bit version on a 64-bit system, you can do that too: select the app in the finder, choose Get Info, and click the “Open in 32-bit mode” check box.)
Grand Central Dispatch
Once upon a time, chip makers made computer chips faster every year by increasing their clock speeds. But when the microprocessor industry ran into some fundamental physical limits to those speeds, it changed gears. That’s why our computers are powered by chips with multiple processor cores. Those multiple cores can process more data than single-core chips—but only if software is written to take advantage of them.
But rewriting software so it will chop up its tasks into little pieces that can then be divided among your computer’s multiple cores is no trivial task. As a result, lots of programs still don’t take full advantage of the power of multi-core processors.
Snow Leopard’s new Grand Central Dispatch is a collection of tools for programmers that should make that job easier. The authors of your favorite programs will still have some work to do; unmodified applications generally won’t get much faster in Snow Leopard. But Apple says that Grand Central Dispatch makes that work much easier.
In simple terms, Snow Leopard lets programmers define different portions of their programs as individual blocks, and then feed those blocks to Grand Central Dispatch. Snow Leopard (via Grand Central Dispatch) keeps track of those different chunks of work; the individual apps don’t have to do it themselves. By creating a single systemwide framework for prioritizing and scheduling individual tasks, Apple hopes that more programmers will make more software multi-core savvy.
For regular Mac users, that doesn’t mean the current versions of your apps will suddenly become blazingly fast. But the next versions could be.
When you think of processing power inside your computer, you probably think of the processor itself—in recent Macs, that means an Intel-built chip with a name like Core 2 Duo or Xeon. But most Macs have another, separate chip with plenty of processing power: the Graphics Processing Unit (GPU), which accelerates graphics and video on your system.
Snow Leopard’s new OpenCL technology is designed to allow programmers to tap into the GPU’s extra processing power. Programmers who use OpenCL will be able to target the unique abilities of GPUs and give them work to do, even for programs that don’t have anything to do with graphics. (Macs without GPUs will simply do the work on their Intel CPUs instead.) Today’s generation of GPUs, in particular, are good at massive operations involving lots of data, such as (big surprise!) games and graphics. Future generations will likely be more adept at a wider range of computing tasks, making them even more viable as additional resources to be exploited by programmers.
(Update: As our friends in the Macworld Forums rightly point out, OpenCL will only work with certain graphics cards: NVIDIA GeForce 9400M, GeForce 9600M GT, GeForce 8600M GT, GeForce GT 120, GeForce GT 130, GeForce GTX 285, GeForce 8800 GT, GeForce 8800 GS, Quadro FX 4800, Quadro FX5600, ATI Radeon 4850, Radeon 4870.)
What’s in it for you?
The bottom line is, you may not know that these technologies are bubbling under the surface of Snow Leopard. But Apple has added them in order to give the people who write Mac software—including the Apple programmers building Snow Leopard itself—the ability to use every scrap of power available on a given Mac. When you launch a new Snow Leopard-savvy version of one of your favorite programs and notice that it’s faster or more efficient than the old one, chances are good that some of these under-the-hood changes in Snow Leopard are the reason why.
[Jason Snell is Macworld's Editorial Director.]
[Updated 8/27 at 10 a.m. PT to fix an error (terabytes should have been exabytes) and add a list of graphics cards.]