April 17th, 2006
In an earlier posting, I cited a source claiming that there were roughly 772 million PC’s worldwide as of 2004; for all I know, the number may be closer to a billion today. But what I do know is that most of those PC’s are idle roughly 99 percent of the time. They sit in offices where they are powered up only during the 9-5 workday hours, or they sit at home where they are powered up only when their owners are home in the evening. Even when they are running, they spend the overwhelming majority of their time waiting for their owners to stop dawdling and type some kind of meaningful instructions on the keyboard.
When I first began working in the computer industry — in the year that Mary Poppins won eight Oscars, but the Pulitzer Prize award was cancelled because the committee felt no work was sufficiently worthy that year — human costs (i.e., salaries) were relatively low, and computing costs were relatively high. We labored intensely to find ways to squeeze unnecessary CPU cycles out of our programs, and we also scheduled our computing activities to achieve as close to 100% CPU utilization as possible. Today, of course, things are different: humans are expensive, and computers are cheap. But old habits and prejudices are hard to break: I still feel guilty about all those wasted CPU cycles.
Rather than harboring negative thoughts about guilt, perhaps it would be more constructive to have positive thoughts about opportunity: aren’t there some great things that we could be doing with all of those idle CPU cycles? Well, I’m certainly not the first person to have thought about this, and it’s interesting to see that the clever lads at Google are also focusing on it. The Google Compute project is providing a mechanism for individuals to contribute their idle CPU cycles for a Stanford University research project called Folding@home, which carries out research on the structure of proteins, in an effort to find cures for various diseases. Google describes their project as follows:
Google Compute is a feature of the Google Toolbar that enables your computer to help solve challenging scientific problems when it would otherwise be idle. When you enable Google Compute, your computer will download a small piece of a large research project and perform calculations on it that will then be included with the calculations performed by thousands of other computers doing the same thing. This process is known as distributed computing.
For those who are uninterested in medical research, there’s always the SETI@home project, which has been running for several years, hoping to find signs of extra-terrestial life in the universe. A few years ago, I was sufficiently intrigued by the project that I donated a few hundred hours of PC computing time to crunch some radio-telescope data from some corner of the sky. But I got bored with it after a while; after all, if I really want to find an alien, all I have to do is buy the War of the Worlds DVD, and watch Tom Cruise slug it out with them.
Toward the end of the dot-com mania, a new buzzword was coined for this notion of using idle CPU cycles for a shared purpose: community computation. Howard Rheingold, the Smart Mobs author I mentioned in my posting about “ubiquitous computing,” wrote an article for Wired magazine in August, 2000 entitled “You Got the Power,” in which he claimed that “a wave of startups is poised to harvest the network’s most wasted resource: your idle CPU cycles.” But aside from the SETI@home project, he mentioned only one other example: a company called Popular Power, which was described as the “first commercial distributed computation company to release software allowing any participating business to do work on its platform.” I have no idea what that phrase means, and when I went to the company’s web site, I found that it had gone out of business. So much for community computing.
Communities — virtual, physical, or otherwise — are great, but how about something on a smaller scale? Why can’t we use those idle CPU cycles to benefit our immediate family, or maybe even our own selfish selves? I’m not foolish enough to think I could create some kind of stock-market analysis program, that would grind away in the background, looking for ways to out-perform Warren Buffet; after all, if I had such a program, then it would only be a matter of time before everyone else had one too, and we can’t all be Warren Buffets in a zero-sum marketplace. But I wouldn’t mind having a program that could analyze all of my checks, cash expenditures, and credit card transactions on an ongoing basis, telling me how I could rearrange my spending patterns in order to save a few dollars each month. (A cynic would argue that a simpler solution is to just spend less money, but that’s not the point.)
Fundamentally, all of us live messy, disorganized, inefficient lives. Maybe that’s the way it was meant to be, and maybe that’s the way a lot of people would wish it to be. But I can’t help thinking that all those idle CPU cycles could be harnessed to find some way to reduce the mess, improve the organization, and improve our efficiency — on a personal level. To some extent, that’s already happening: after all, I use my PC to manage my calendar, communicate more efficiently with my friends and colleagues, and find more information through the awesome power of Google. But all of that requires only one percent of my computer’s resources. Why can’t I find something useful to do with the remaining 99%?
