The MIPS Are Out There
Inside nearly every enterprise hides a secret cache of computing power. The power hides in plain sight, shifting forms and defying primitive attempts to capture it using tools like budgets and ROI calculations. Yet there it sits, untapped, the equivalent of a couple of mainframe computers, dormant within most organizations. Like a parasitic life form, it sucks resources from the company and gives little back. Recently, the Search for Extraterrestrial Intelligence (SETI) became interested in trapping this mysterious source of energy. The clever scientists at SETI have found a way to not only trap the energy, but also to use its raw power in SETI’s ongoing search for life on other planets. This incredible cache of computing power, it turns out, is actually the idle time of hundreds of thousands of personal computers.
Since the beginning of computing, designers have tried to find ways to increase the use of a computer’s resources. Techniques such as multitasking aren’t meant to speed up an individual task, but instead are meant to increase the load on the CPU so it is always kept busy. It’s the same type of optimization you’d find in an assembly line that included one very expensive machine fed by the results of a cheap manual process. You’d want to run as many of those cheaper manual processes as you could to ensure the expensive machine was well utilized.
The problem with leveraging the power of a personal computer has little to do with the operating system, which does an admirable job of keeping the CPU at work. The problem is that once a PC user’s task is completed, the utilization of the entire machine often drops to zero. In many cases, a company PC may only do one hour’s worth of work in a day. It doesn’t take Mulder and Scully to figure out that these companies are wasting money.
SETI’s plan taps the resources of all those bored PCs by permitting interested users to participate in the search for alien life. By downloading a screen-saver from http://setiathome.ssl.berkeley.edu, Internet-connected alien watchers can automatically download radio telescope observations from space and use their PCs to analyze the signal for signs of life. By capturing the imagination of computer users, SETI has managed to capture the spare MIPS of some 650,000 personal computers. In essence, SETI has found three billion dollars worth of computing resources for the cost of creating a screen-saver.
Why aren’t companies trying to recapture their lost firepower, especially since using existing computing resources does not increase maintenance costs? Perhaps the reason PCs spend much of their time idling is because the technologies needed to fully utilize them have only recently become commonplace. It was virtually impossible to capture wasted PC power when the beige boxes sat unconnected on office desks. Now, commonplace technologies -- networking, enterprise directories, remote procedure calls, message queuing and a browser interface -- give programmers a number of ways to tap the power of underutilized machines.
Better use of an individual machine starts with intelligent batch services that run only when the machine has been idle for some time. Ideal candidates for this optimization are disk maintenance tools, text indexers, virus scanners and backups. Scheduling is not an ideal solution: I don’t know anyone in the high-tech industry who works a fixed schedule. I know I’d be much happier walking in each morning to an optimized machine, rather than having batch processes hounding my computer while I’m compiling.
In the distributed scenario, a fleet of idle computers can replicate data and create denormalized reports for data warehouses and OLAP. Logged-out machines can crank out speech-to-text conversions of telephone meetings and index the results. Incoming e-mail can be analyzed for spam and viruses. Depending on the algorithm, complex graphics can be distributed pixel-by-pixel to otherwise idle machines for rendering. Hundreds of millions of lines of source code can be recompiled in short order.
Taking advantage of idle machines in an enterprise has its challenges. The first challenge is making the data available to the distributed machine. Fortunately, enterprise data pipes continue to get fatter. Licensing products is another hurdle, as most machines participating in a symbiotic computer solution will need to have a license. Finally, distributing the work to willing machines is an interesting problem. One solution is to create an enterprisewide message queue containing work requests. When a machine is idle, it polls the queue for work requests that it is licensed to perform. When it find a match, the machine grabs the request, performs the work and returns the results. If the machine gets interrupted with more important work it simply puts the request back in the queue for another machine to tackle.
Next time your company is ready to throw hardware at a problem, you may want to open your own X-File investigation. You’re likely to find that the MIPS are already out there. --Eric Binary Anderson is a development manager at PeopleSoft's PeopleTools division (Pleasanton, Calif.) and has his own consulting business, Binary Solutions. Contact him at firstname.lastname@example.org.