I have a spare computer that has Ubuntu server edition (10.04.1) installed on it and was wonder if there was a way to use my server to help processes data on my Ubuntu desktop (same release). I would like to share any heavy-processor functions with my server to ease the load on my desktop. Does anyone know of a good/easy way to do this? They're connected on the same network through a router. I'll list what I think may be relative components for each one below.
Desktop - Intel core 2 quad @ 2.83Ghz
Ethernet controller: Atheros Communications Atheros AR8121/AR8113/AR8114 PCI-E Ethernet Controller (rev b0)
Server - Pentium 4 @ 2.8Ghz with hyper-threading
Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)
If you're looking for a way to do this for general computer usage, i.e. if you don't have some specific, computationally-intensive mathematical problem in mind, the answer is that it is not possible. Individual programs must be specifically designed to perform distributed computing.
The conceptual explanation is that, in order for another computer to assist with a processing task, the prerequisite input instructions and resources must be completely predicted and passed to the computer ahead of time. Even if the difficult problem of predicting processing tasks can be solved, the overhead involved in sending the instructions and resources to another system is too costly for the kind of processing typically done on a desktop computer.
For distributed computing to result in a net increase in efficiency, the amount of processing input that can be predicted must be large compared to the overhead in communication. In practice, this limits the possible applications to computationally-intensive mathematical problems like protein folding and 3D rendering.
Just in-case anyone else comes looking here I thought I'd share what I've found.
There's a project known as LinuxPMI that is designed to share processes between a network of computers configured to use it.
For research purposes as projects may merge and become discontinued this history may help in locating it in the future:
A project called clusterix was created that used openMosix project as it's basis for clustered / grid computing.
As stated by someone else, this currently isn't available for general computing. It is available in specialized applications in Linux such as DVDRip. If you're interested in doing a bit of work and have specific generalized tasks that you want to handled, have a look at Bash Reduce, a Map Reduce implementation done completely in bash.