Introduction
Parallel Virtual Machine
PVM is a software package that permits a heterogeneous collection of
serial, parallel, and vector computers on a network to appear as one
large computing resource.
- PVM allows us to use the combined power of a number of computers.
- PVM is a virtual computer that allows multiple supercomputers to
be linked together to achieve Grand Challenge performance.
- PVM is an educational tool that allows institutions without
access to parallel computers to teach courses in parallel
computing.
Major Features of PVM
- Easy to install.
- Easy to configure.
- Each individual's configuration can overlap other users' PVMs without conflict.
- Easy to write programs with the use of a standard message-passing interface library.
- Supports C and Fortran-77 applications.
- The PVM package only requires a few Mbyte of disk space.
Heterogeneity
PVM supports heterogeneity at three levels.
- Application
- Subtasks can use the architecture best suited to their solution.
- Machine
- Computers with different data formats, different architectures (serial or parallel), and different operating systems.
- Network
- Different network types; for example. FDDI, Ethernet.
Portability
PVM currently runs on:
80386/486 with BSDI Alliant FX/8
DEC Alpha/OSF-1 BBN TC2000
DEC Microvax Convex
DECstation Cray YMP and C90
DG Aviion IBM 3090
HP 9000/300 Intel Paragon
HP 9000/700 Intel iPSC/2
IBM RS/6000 Intel iPSC/860
IBM/RT Kendall Square KSR-1
NeXT Sequent Symmetry
Silicon Graphics IRIS Stardent Titan
Sun 3 Thinking Machines:
Sun 4, Sparc CM-2, CM-5
Meiko CS-2
Portability
- Version 3 is portable to non-Unix machines and multi-processor computers
- Versions running and available on iPSC/860, Paragon, CM-5, and CS-2.
The PVM System
The System is composed of:
- Pvmd3 daemon program that
- Runs on each host of the virtual machine
- Provides inter-host point of contact
- Authenticates tasks
- Executes processes on the hosts
- Provides fault tolerance
- Is mainly a message router, but is also a source and sink of messages
- Libpvm programming library that
- Is linked with each application component (program)
- Contains the PVM message passing functions
- Application components
- Written by users in PVM message-passing calls
- Are executed as PVM `tasks'
Changes from v2 to v3
New features in PVM include:
- TIDs that provide an efficient method of identifying processes in PVM . Since TIDs must be unique across the entire virtual machine, they are supplied by the local pvmd and are not chosen by the user
- Dynamic configuration of the virtual machine to enable addition and deletion of hosts during execution
- Pvmds with fault detection, thereby enabling fault-tolerant applications to be built
- Console not built into pvmd, and is therefore a normal task
- Portability to multi-processors. PVM3 is designed to use native communication calls within a multi-processor computer
- Multiple message buffers to allow messages to be saved and forwarded
Programming Concepts
Some terminology associated with PVM programming:
- Host
- A physical machine; for example, Unix workstation or parallel computer
- Virtual machine
- Combination of hosts running as a single concurrent computational resource
- Process
- A program, data stack, etc... For example, a Unix process or a node program
- Task
- A PVM process - the smallest unit of computation.
- TID
- A unique (per virtual machine) identifier associated with each task
- Message
- An ordered list of data sent between tasks
Submitted by Mark Johnston,
last updated on 12 January 1995.