next up previous

1 Introduction

This guide is intended for those who are learning to use PVM (Parallel Virtual Machine), which is a software package that allows a programmer to create and access a concurrent computing system made from networks of loosely coupled processing elements. The hardware collected into a user's virtual machine may be single processor workstations, vector machines or parallel supercomputers. The individual elements may all be of a single type (homogeneous) or all different (heterogeneous) or any mixture, as long as all machines used are connected through one or more networks. These networks may be as small as a LAN connecting machines in the same room, as large as the Internet connecting machines across the world or any combination you need. This ability to bring together diverse architectures under a central control allows the PVM user to divide a problem into subtasks and assign each one to be executed on the processor architecture that is best suited for that subtask. While there is no restriction on task size, because of the time needed to send data between two machines over an external network, it is recommended that the tasks be of a moderately large grain to make the most effective use of PVM.

To be as general and flexible as possible, PVM is based on the parallel message-passing model. Messages are passed between tasks over the connecting networks. Data conversion is done automatically between machines that do not share data representations. User's tasks are able to initiate and terminate processes, share data and synchronize with one another through a library of standard interface routines. The control and dependency of tasks is arbitrary and under the complete control of the user according to the dictates of the application.

Section 2 of this guide tells how to install PVM on those machines you wish to use in executing a PVM program. Section 3 gives information on how to write a PVM application and use the communication library functions to get separate tasks to cooperate. Example programs in both C and Fortran are included. Section 4 shows how to run PVM applications. Section 5 details where to get more information.