Provide a very easy way to run one program with different settings on a bunch of computers in parallel and collect the results. Simple configuration and wide applicability is the aim. Fault tolerance in respect to network and adminstration errors. Why not use something like MPI? Well, not all programs are witten in C ;-). It needs a lot of effort to adapt it to a new program and one needs to setup MPI on the slave computers.
To make this side easier to understand let's clarify some terms.
Master | is the computer where the server runs |
Slave | is one of many computers that do the work |
Server | program that coordinates the process |
Client | program that runs on slaves |
Worker | program that does the computation (nearly any) |
Task | a set of parameters/ settings for the Worker |
Result | a file with the results of the computation |
SessionID | unique number for client-server communication (should be unique over multiple runs) |
Ticket | computation identification. Unique within one run. |