Parallel Virtual Machine

From Wikipedia, the free encyclopedia

Jump to: navigation, search

The Parallel Virtual Machine (PVM) is a software tool for parallel networking of computers. It is designed to allow a network of heterogeneous Unix and/or Windows machines to be used as a single distributed parallel processor. 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, which is available free through netlib, has been compiled on everything from laptops to Crays.

PVM enables users to exploit their existing computer hardware to solve much larger problems at minimal additional cost. Hundreds of sites around the world are using PVM to solve important scientific, industrial, and medical problems in addition to PVM's use as an educational tool to teach parallel programming.

[edit] Development

PVM was developed by the University of Tennessee, Oak Ridge National Laboratory and Emory 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 supported fault tolerance and better portability.

PVM continues to be actively developed, although its relative maturity and stability mean that new releases are infrequent. It was a significant step towards modern trends in distributed processing and grid computing. It is still widely used, and new bindings (for example the perl Parallel::PVM module) are under active development.

PVM is free software, released under both the BSD License and the GNU General Public License (see below).

The Perl interface to PVM is released under the Artistic License.[1]

The official software license of the official PVM software distribution appears in every source file, and is repeated here for convenience:


         PVM version 3.4:  Parallel Virtual Machine System
               University of Tennessee, Knoxville TN.
           Oak Ridge National Laboratory, Oak Ridge TN.
                   Emory University, Atlanta GA.
          Authors:  J. J. Dongarra, G. E. Fagg, M. Fischer
          G. A. Geist, J. A. Kohl, R. J. Manchek, P. Mucci,
         P. M. Papadopoulos, S. L. Scott, and V. S. Sunderam
                   (C) 2009 All Rights Reserved

                              NOTICE

 Permission to use, copy, modify, and distribute this software and
 its documentation for any purpose and without fee is hereby granted
 provided that the above copyright notice appear in all copies and
 that both the copyright notice and this permission notice appear in
 supporting documentation.

 Neither the Institutions (Emory University, Oak Ridge National
 Laboratory, and University of Tennessee) nor the Authors make any
 representations about the suitability of this software for any
 purpose.  This software is provided ``as is'' without express or
 implied warranty.

 PVM version 3 was funded in part by the U.S. Department of Energy,
 the National Science Foundation and the State of Tennessee.

[edit] Note on GNU Regex Usage and Licensing

While the standard PVM source distribution includes elements of the GNU "Regex" library, which carries a GPL licensing agreement, this code is not strictly necessary for PVM's full functionality, and this "pvm3/src/regex" subdirectory can be safely deleted from your PVM installation if the GPL licensing proves too restrictive for your specific needs or uses.

Further, the Regex library is not built into the PVM libraries or tools unless the special macro "USE_GNU_REGEX" is defined in the "pvm3/conf/$PVM_ARCH.def" configuration file, as part of the "$ACRCFLAGS" definition, as in:

   ARCHCFLAGS = . . . -DUSE_GNU_REGEX . . .

Please direct any specific questions or inquiries to the PVM Email Helpline.

[edit] What is PVM?

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 "parallel virtual machine".

The individual computers may be shared- or local-memory multiprocessors, vector supercomputers, specialized graphics engines, or scalar workstations and PCs, that may be interconnected by a variety of networks, such as Ethernet or FDDI.

PVM consists of a run-time environment and library for message-passing, task and resource management, and fault notification. While PVM will not automatically make a commercial software package run faster, it does 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 your "virtual machine". There is no "automatic" installation of executables onto remote machines in PVM, although simply copying the pvm3/lib and pvm3/bin directories to another similar machine (and setting $PVM_ROOT and $PVM_ARCH - see below) is sufficient for running PVM programs. Compiling or building PVM programs requires the full PVM installation.

User programs written in C, C++ or Fortran can access PVM through provided library routines.

For more information or to download the free PVM source code distribution, please see the:

Official PVM Home Page.

[edit] See also

[edit] References

This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.

  1. ^ "Perl PVM README". http://search.cpan.org/src/DLECONTE/Parallel-Pvm-1.4.0/README. "This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself." 

[edit] External links

Personal tools