Thursday, August 27, 2009

Snow Leopard and Energy Efficiency

The computing world is buzzing about tomorrow’s release of Mac OS X 10.6, better known as Snow Leopard. As the name suggests, it’s a refinement of the previous version, Leopard, with better speed, smaller footprint, and so on. Most of the mainstream media reviews of Snow Leopard just don’t get it, but The New York Times’ David Pogue realizes this is “a leap forward”:

. . . the big story here isn’t really Snow Leopard. It’s the radical concept of a software update that’s smaller, faster and better — instead of bigger, slower and more bloated. May the rest of the industry take the hint.

The secret behind Snow Leopard that no one seems to want to say to the public is that Apple took a lot of the engineering work that made its operating system fit on the iPhone, and painstakingly applied it to the computer version of its operating system, ending up with changes in 90 percent of its code. The result is sleek in an engineering sense. It’s what you get when you have engineers go over a design again and again, testing thousands of possible adjustments to see which might improve the product. Traditionally, this kind of work hasn’t been done in computer programming. Software engineers breathe a sigh of relief if the product they’ve just shipped actually works for everyone — there’s no time to worry about how clunky it is. Until now.

With the iPhone, Apple had no choice. Clunky wasn’t an option. In a device as small and important as a phone, you can’t have a battery that dies because of software that just barely works. And as a result of that effort, and folding it into Snow Leopard, Apple has positioned itself ahead of a coming trend.

You see, there is a not-so-hidden meaning in the name Snow Leopard. Snow is cold. Cold is the opposite of hot. Computers get hot mostly because of inefficient software that wastes electricity and creates heat. By running more efficiently, Snow Leopard allows a computer to run cooler and use less electricity.

And this is where the computer industry is going — not so much right now, but it will become a big issue perhaps four years from now. Over the last half century, “efficiency” in computer programming has mostly referred to a program that gets results faster. Now, computers are mostly fast enough. In the future, “efficiency” in computing will mostly mean the same thing it means in everything else in everyday life: energy efficiency. On a small scale, energy efficiency prolongs battery life and keeps devices from overheating. On a large scale, it cuts a company’s electric bill, reduces the need for air conditioning, makes it easier to keep the electric grid balanced, and reduces the country’s dependence on imported energy.

Snow Leopard is just the start. Software testing that currently measures only the accuracy of results will also have to start estimating power consumption. A generation of programmers brought up to work with reliability and security in mind will have to be retrained to code for energy efficiency. It will be a huge effort, but if you stop to think how much work computers might do for us a generation from now, reducing their energy consumption will make a big difference.