PVM is a widely implemented message-passing standard. In the standard implementation, PVM uses a server process to control spawning and termination of task processes, and different process images are allowed to collaborate in one parallel program. The implementation that runs on the DAS machine is baptized PANPVM, since it has been done on top of Panda. Panda uses a SPMD programming style. For this reason PANPVM also uses SPMD programming style, which means that all processes in the parallel program execute the same process image (though with different data), and that all processes are started and terminated at the same time.

Many PVM applications already use the SPMD style, or they are written in the "one master, multiple (but identical) workers" style. In the first case, a slight conversion in initialisation is needed, see PANPVM. In the second case, both programs must be merged into one; a new top-level main routine must be provided which calls either the master (if the process number is 0) or the slave as a subroutine. In both cases, the original spawning code must be left out.

PANPVM is supported both for Fortran and for C. A script panpvmc is provided, which automatically provides the correct include directives and run-time libraries. We strongly recommend to use panpvmc for all development work with PANPVM. The compile script supports the full range of architectural options known to the Panda compile script panc. The options -O, -O1, -O2, ... are treated specially. When one of these options is specified, optimized versions of PVM and Panda libraries are linked into the program. When no -O* option is specified, debugging libraries (with symbol table support, assertions etc) are linked into the program.

PVM info can be found on the PVM home page. Beware of routines documented there that are not supported in PANPVM!

Advanced School for
Computing and Imaging

Back to the DAS home page
This page is maintained by Rutger Hofman. Last modified: Thu Sep 24 17:47:37 MET DST 1998