![]() | This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages) (Learn how and when to remove this message)
|
Original author(s) | Oak Ridge National Laboratory |
---|---|
Developer(s) | University of Tennessee |
Initial release | 1989 |
Stable release | |
Written in | C |
Operating system | Windows and Unix |
License | BSD,GPL |
Website | https://www.epm.ornl.gov/pvm/pvm_home.html |
Parallel Virtual Machine (PVM) is asoftware tool for parallel networking ofcomputers. It is designed to allow anetwork of heterogeneous Unix and/or Windows machines to be used as a single distributedparallel processor.[2] Thus large computational problems can be solved more cost effectively by using the aggregate power and memory of many computers. The software is very portable; the source code, available free throughnetlib, has been compiled on everything fromlaptops toCrays.[3]
PVM enables users to exploit their existing computer hardware to solve much larger problems at less additional cost. PVM has been used as an educational tool to teachparallel programming but has also been used to solve important practical problems.[3] It was developed by theUniversity of Tennessee,Oak Ridge National Laboratory andEmory University. The first version was written at ORNL in 1989, and after being rewritten by University of Tennessee, version 2 was released in March 1991. Version 3 was released in March 1993, and supportedfault tolerance and betterportability.
PVM was a step towards modern trends indistributed processing andgrid computing but has, since the mid-1990s, largely been supplanted by the much more successfulMPI standard for message passing on parallel machines. PVM isfree software, released under both theBSD License and theGNU General Public License.
PVM is a software system that enables a collection of heterogeneous computers to be used as a coherent and flexible concurrent computational resource, or a "parallelvirtual machine".
The individual computers may be shared-memory or local-memorymultiprocessors,vectorsupercomputers, specializedgraphics engines, orscalarworkstations andPCs, that may be interconnected by a variety ofnetworks, such asEthernet orFDDI.
PVM consists of a run-time environment and library formessage passing, task and resource management, and fault notification. While PVM will not automatically make a commercial software package run faster, itdoes provide a powerful set of functions for manually parallelizing an existing source program, or for writing new parallel/distributed programs.
The PVM software must be specifically installed on every machine that is to be used in a given "virtual machine". There is no "automatic" installation ofexecutables onto remote machines in PVM, although simply copying thepvm3/lib
andpvm3/bin
directories to anothersimilar machine (and setting$PVM_ROOT
and$PVM_ARCH
) is sufficient for running PVM programs.Compiling or building PVM programs requires the full PVM installation.
User programs written inC,C++, orFortran can access PVM through provided library routines.
PVM also supportsbroadcasting (PVM_bcast) which sends to all processes in a group and multicasting (PVM_mcast) which sends to a specific list of processes.