Basic Xgrid Concepts
A typical Xgrid setup you looks like:
An Xgrid consists of the following parts:
- Xgrid Agents - The Xgrid Agents are the various Macintosh computers in the Student Computing Services labs around campus. When no one is logged into the console of the machine, its computing resources are made available to the Xgrid.
- Xgrid Controller - The Xgrid Controller is the server that coordinates the Xgrid environment. The Xgrid Controller keeps track of what agents are available, what jobs are running on the agents, what jobs are queued, etc.
- Xgrid Client - The Xgrid Client is a machine that connects to the Xgrid Controller and submits work for the Xgrid to process.
- Xgrid Client Program - The Xgrid Client Program is a program or script that is submitted to the Xgrid that is the actual work that needs to be performed.
The typical flow of an Xgrid job is:
- An Xgrid client program is submitted from an Xgrid client to the Xgrid controller
- The Xgrid controller creates an Xgrid job from the client program, assigns a job identifier to the job, and places the Xgrid job in a queue
- When the Xgrid controller has a free Xgrid client, the next pending job is sent to the client so it can be executed.
- The job is executed on the client machine.
- When the job completes execution, the Xgrid client notifies the controller that the job has completed and sends the terminal output (STDOUT) to the controller
Often the output of the Xgrid jobs are such that the client program needs to place the results elsewhere, such as in a database. When that is the case, the setup may look like:
Where each Xgrid job will log its results to the database.