Friday, August 17, 2007

Distributed Computing

I spoke briefly Monday night about blogging about using some fun server technologies to install a distributed computing application to several computers I'm in charge of at another job. Judging by the blank looks I got, I realized it would be important to first explain what distributed computing is and why it's so important. THEN, I could talk about how I got (and how you can get) these programs installed on several computers at once.

So anyway, imagine a huge problem. Like AIDS, or cancer or even finding prime numbers. A problem so huge that lots of statistical research must be disseminated through. So huge that our contemporary home/office computers can't even begin -- even with their modern dual/quad core power -- to knock a dent in the problem. A computer with several, no, several hundred processors might be nice, but still. AIDS is a big problem, yo.

What distributed computing does is ally a group of computer users together in order to donate their CPU's idle time -- in effect making a huge supercomputer. A centralized server is in constant contact with thousands of clients (you and me, who download client software). That server sends in a manageable packet of information that needs "crunching". The client receives that packet, crunches it, and sends it back to the server. Then, the server sends another packet that needs crunching. The process repeats for each client as long as the client's owner allows the process to run. Imagine that process times 1,000 or 10,000 or 250,000 or even a million clients. Each client has a processor! It's like having a supercomputer with a million processors. You can't buy that kind of computing power -- and it's basically FREE for the research institute, so they have money they can spend on more noble needs. Like, AIDS or cancer or prime number research.

There are all kinds of different distributed computing projects out there you can participate in -- many are found at http://www.distributedcomputing.info/. My personal favorite is one from Stanford University called http://www.stanford.edu/group/pandegroup/folding/ (folding refers to the behavior of proteins in certain situations). Part of their research involves Alzheimer's disease -- the disease my grandfather died from at age 66 after a 12 year battle. So, of course, I would like to see this disease eradicated and am willing to donate my already-running PC's idle time to fighting it.

I urge anyone reading this to, seriously, download some sort of distributed computing project designed for the betterment of society. The word is still out about whether or not you can deduct the CPU time on your taxes.

Later, I'll detail how I used Remote Desktop and various command-line utilities to install the Folding@Home client on the machines in my lab without leaving my desk.

No comments: