The Parallel Virtual Machine (PVM) documentation will tell you that "PVM is a
software system that enables a collection of heterogeneous computers to be used as a
coherent and flexible concurrent computational resource. The individual computers
may be shared-or local-memory multiprocessors, vector supercomputers, specialized graphics
engines, or scalar workstations, that may be interconnected by a variety of networks, such
as ethernet, FDDI. User programs written in C, C++ or Fortran access PVM through
library. Daemon programs provide communication and process control between
computers."
Because our supercomputer is
no longer functional, we attempt to provide our programs with comparable computing power
by spreading processor-intensive tasks over multiple machines in the lab. My project
is a modified version of my Mandelbrot program. When it comes time to calculate the
Mandelbrot set for the given region, the master task spawns a number of slave tasks
multiple computers. Each task is sent a row to do the calculations for; when it
finishes, it sends the results back and receives another from the master program.
Otherwise, the program is functionally equivalent to its single-machine
counterpart.
See the code for the master and slave
programs.