A grid computation framework is the concept of multiple computers attached through a network that solve a problem in parallel by breaking the problem into smaller parts. This is similar in many ways to a parallel computer that has multiple processors over which to distribute tasks. There are, however, several key differences.

The most common parallel machines are based on multiple-processor, shared-memory models. In this model, each processor runs independently of all others but must share a common memory space and often, common data elements with the other processors. The advantage of this system is that communication between the processors is extremely fast. The major drawback is that memory must be managed in such a way that no one processor can modify the contents of memory at the same time another is attempting to read or write to that memory.

A grid framework is made up of individual computers. In this case, each processor has access to its own memory space without having to consider the actions of another processor. The primary disadvantage is that communication between the processors is extremely slow based on the speed of the network; usually this is a factor of 40 or higher.

Based on these constraints, parallel computers often break tasks into very small parts to be processed and grid frameworks usually use much larger tasks to minimize the communication penalty. An example of a parallel computer can be seen in the PowerMac G5. The most famous grid framework can be seen in the Seti@Home project.

The grid framework I chose to use was Apple’s XGrid. It is based on the simple paradigm of agent-controller-client. The agents are the actual processing computers of which there may be many. The controller is a single computer that is responsible for distributing the tasks to the agents and collecting the results. Note that the controller may also be an agent. The client is the computer that submits the jobs to the grid; this may be any computer on the grid as an agent or the controller. The XGrid framework uses Rendezvous networking, an ad-hoc network in which computers may join or leave at any time with zero-configuration. The flexibility of this framework makes it ideal for a grid where the number of agents is uncertain, may change during processing, and may be made up of computers of varying speeds.


What is My Solution?