PVM (Parallel Virtual Machine) is a software package
that permits a heterogeneous collection of Unix and/or Windows computers
hooked together by a network to be used as a single large parallel computer.
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 thru 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.
With tens of thousands of users, PVM has become the de facto standard
for distributed computing world-wide.

PVM 3.4.6 Released. Includes both Windows and Unix versions and
improved use on Beowulf clusters. Also includes the latest patches for
working with the latest versions of Linux, Sun, and SGI systems.
New features in PVM 3.4.x include communication contexts, message handlers,
persistent messages, and interoperablity between NT and Unix clusters.
(See Advanced Tutorial on PVM 3.4)

Parallel::PVM 1.4.0 Released.
Available from CPAN, this perl wrapper for PVM now implements the group
functions, supports message sizes greater than 100K and fixes some
memory leaks. Available from your friendly
CPAN mirror.

Some new items added to this page several new additions to
"notable PVM software" developed by third parties around the world,
new version of Java PVM, release of Python port to PVM, port of PVM to R,
New distribution of PVM 3.4.5 for Windows.

PVM Documentation:

PVM and MPI: A Comparison of Features
Paper published in Calculateurs Paralleles Vol. 8 No. 2 (1996).
Describes differences between PVM and MPI and under what circumstances
one package is favored over the other.

PVM Programming:

Compile problem with Redhat 7.0 and PVM 3.4.3. Redhat changed the way
compilers work between 6.x and 7.0 that causes an error message on compile.
The fix is simple and can be applied manually:
You need to change 2 lines in pvm3/src/lpvmpack.c as follows:
line 1827: tc = (char) va_arg(ap, int);
line 1852: th = (short) va_arg(ap, int);
then recompile. That should do it.
This fix is in the PVM 3.4.4 and later releases.

Noteable PVM related SoftwareIf you think you have something to list here let us know

S-Lang PVM
Micheal Noble and company at MIT have created S-Lang bindings to PVM
for all you S-Lang users out there. Enjoy!

LPVM
LPVM is PVM3 bindings for Common Lisp with
UFFI. The developer, Ivan Boldyrev,
says patches are welcome.

pypvm-0.92New release!
Michael Petullo and Greg Baker have merged their Python-PVM
into a single release. Very nice. Check it out.

Using Windows MFC with PVM
Brian Piscopo describes how to make PVM compatible with MFC
(Microsoft Foundation Classes),
including a working example. This allows people to harness
the power of PVM while providing easy-to-use GUIs for Windows.

IDL to PVM interface.
This Interactive Data Language (from Research Systems) interface to PVM lets
you perform parallel processing with IDL through PVM calls. It is
analogous to the MATLAB toolbox.

Dynamite Dynamic PVM for dynamic task (re-)allocation of
PVM tasks using the Dynamite Checkpointer also available at the
above link.

PVM Configurator
allows one to create/modify/setup hostfiles and then start them.
The big advantage of this very nice graphical program is
to speedup the configuration of new clusters. (Source Code now available)

EasyPVM
is a C++ wrapper for the PVM libraries. It is intended to be EASY
and wrap the most-used core of the PVM libraries. There are only three
classes: PvmDaemon, PvmTask and PvmStream. PvmStream features unlimited
message size and strong type checking of the variables passed. (Full source
code available)

APPSPACK
a library of asynchronous and fault tolerant parallel pattern
search methods for optimization. It is particularly useful for
engineering optimization design problems characterized by a small
number of variables and by expensive objective function evaluations.

DAMPVM
- Dynamic allocation and migration extension built on PVM by
Pawel Czarnul of Technical University of Gdansk.

WAMM
(Wide Area Metacomputer Manager), developed at CNUCE-Institute of the
Italian National Research Council, is a graphical tool, built on top of
PVM. It provides user with a graphical interface to assist in repetitive
and tedious tasks such as: host add/check/removal, process management,
compilation on remote hosts, remote commands execution.

Fortran 90 PVM interface -
developed by Laurent Gasser, this tar file contains all the files
you need to take advantage of Fortran 90 facilities.
It is used in the current development of the PVM version of his weather forcast numerical model. Enjoy!

tkpvm -
developed by Nijtmans in the Netherlands, this package combines
the power of tcl/tk and PVM. Good stuff!

tclpvm - this package and a suite of tools based
on this package are in the standard distribution of the
Beowulf Linux distribution. Look for it soon in other Linux distributions!

PIOUS -
Parallel I/O system for PVM applications.
Developed by Vaidy Sunderam and Steve Moyer.

Adsmith -
is an object-based DSM totally built on top of PVM, without using any
system dependent facilities. Adsmith employees many performance
optimization techniques to improve its performance.

WPVM 2.0 -
Alexandre Alves of University of Coimbra - PORTUGAL has
created a PVM version for Microsoft Windows.

jPVM -
new version 1.1.4, which works with PVM 3.4,
a native methods interface to PVM for the Java (tm) platform

JPVM -
is a PVM-like class library implemented in and for use with Java.

Pypvm is a Python interface to PVM.
Python is probablly the second most popular scripting language behind Perl.
If you use Python, go parallel with Pypvm.

CPPvm ( C Plus Plus PVM) -
a C++ interface to PVM 3.4 written by Steffen Goerzig. It allows send/recv
of C++ objects as well as use of distributed C++ objects, and more...

PowerPVM -
GENIAS Software has a high performance versions of PVM for Parsytec Systems.

Sciddle -
a software package developed at ETH Zurich, Switzerland that
enables an application to use asynchronous Remote Procedure Calls within
the PVM environment.

SP2 patch
For the those who use the fast SP2MPI port on the IBM SPx,
we have a patch to PVM 3.3.11 for a reported bug that can occur
when the cyclic buffer that
holds the outstanding request handles get corrupted. The error message
is "invalid handle in an MPI_Test call". The patch only affects SP2MPI.