A managed distributed processing system for heterogenous clusters of computers.
Peach is a package that allows the distribution of single-processor tasks across a collection of computers, regardless of the types or capabilities of those computers. As it was developed for use on Unix-based systems, the current implementation has been tested only under various flavors of Unix. However, Peach is written in Perl and should therefore run on any system with Perl 5.6 or later. The only other strict requirement is that at least one disk needs to be shared amongst the participating computers for serving programs and access to data.
The components of Peach are communicating using a client-server model. A server daemon running on one computer manages job submissions, assignments and other client requests. Job daemons are clients running on all participating computers monitors the activity on these computers and decides when to launch new jobs or when to suspend jobs, as well as notify the server of job completion or termination. The communication model is designed to be robust so that any termination of one component will leave the other components running. This allows the server to be moved to a new machine, or the restart of a job daemon.
In addition to the job daemons, other clients also communicate with the server for information about job status and to submit or kill jobs.
Although any executable can be used through Peach, it was developed specifically to provide a distributed environment for Bsoft programs. Many Bsoft programs have features that allow relatively simple subdivision of a task into sub-tasks that can easily be distributed via Peach.