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.