Distributed Computing: Doing Good By Doing Nothing At All
(from the 6/07 issue of the CompuNerds Nerdsletter - sign up for it here)
What is distributed computing, and why is it so terrific? Basically, you’re running a program in the background that utilizes your computer’s free time (when it’s not otherwise being used) to do something productive, like cure diseases or search for signs of extra-terrestrial life. That, however, is not the entire definition. For the whole story, you’ll need to read on.
There are certain types of scientific problems that are not mathematically complex, but still require vast amounts of computing power to figure out. These problems usually involve doing a massive number of similar calculations over and over with slight variations. These problems are too big to compute on any one computer. Even if you have a supercomputer handy, it would take too long, and you probably wouldn’t want to tie up your supercomputer working on just one thing all the time.
When the internet came along, someone had the bright idea to break up these massive problems into smaller, pc-sized chunks, and feed a little piece of the problem to individual computers. Each computer could churn away at the problem on their own machine, at their own rate, and when they’ve finished computing their little piece, they would send it back to the project’s organizer. The organizer would assemble together all the little completed pieces and come up with the big answers. The more individual computers that were devoted to the problem, the more raw processing power there would be, and the faster problems could be solved. There are millions of computers out there with idle time, waiting to have their power harnessed.
The academic communities have seized on this approach, and now there are a variety of projects from which to choose. They need people to volunteer in order to be successful. Most people do it out of the goodness of their hearts, like giving blood, or because they believe in the worthiness of the project. There are a few commercial organizations that will actually pay you for your spare processing time.
You get involved by going to a project’s website and downloading and installing a small program that runs in the background. It will fetch little chunks of the project to work on when the computer is idle. As it finishes a section, it uploads it and gets another to work on.
You can find a current list of available projects here:
Here’s an overview of some of the most popular projects:
BOINC & SETI@Home:
“BOINC” stands for Berkeley Open Infrastructure for Network Computing and is a popular platform from which to run a whole bunch of different projects. One of the most famous is SETI@home. SETI is the Search for Extra-Terrestrial Intelligence. With this project, your computer is used to analyze data recorded from radio telescopes around the world to find signals that may indicate the existence of intelligent life in the universe.
If you’re looking for something a little closer to home with perhaps more practical value (perhaps not; I’m not judging), you may want to consider this project.
Very briefly, proteins in your body fold into different three-dimensional shapes depending on the type and arrangement of the amino-acids in them. They need to fold into the correct shape to function properly. When they misfold, all kinds of bad things like Alzheimer’s Disease, Cystic Fibrosis, and Mad Cow Disease can occur.
Researching and testing the different variations in a laboratory is difficult, slow and expensive. However, the proteins can be mathematically modeled much more quickly and efficiently. Stanford University sponsors this project with the aim to better understand how protein folding works, and to cure the diseases that result from misfolding.
Help Oxford University to increase the accuracy of worldwide climate modeling. This may help us understand global warming better, or give us more lead time to prepare for the next Katrina.
If you’re the competitive type, you can join a team and compete with other teams to see who can process the most data. Distributed computing is your opportunity to get involved and contribute your idle-processing time to a good cause, so get out there and pitch in!