---
name: "pvm_intro"
section: "1"
platform: "linux"
package: "pvm"
version: "3.4.2-8"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/pvm_intro"
---

# pvm\_intro(1)

Parallel Virtual Machine System Version 3

## NAME

PVM - Parallel Virtual Machine System Version 3

## DESCRIPTION

*PVM* is a software system that enables a collection of heterogeneous computers to be used as a coherent and flexible concurrent computational resource.

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

User programs written in C, C++ or Fortran access PVM through library routines (*libpvm3.a* and *libfpvm3.a*).

Daemon programs (*pvmd3*) provide communication and process control between computers.

## MACHINE ARCHITECTURE

In the PVM system, machines are assigned a short string to identify their architectures (this includes operating system type as well as CPU type). The types currently predefined in the distribution are:

- AFX8

  Alliant FX/8

- ALPHA

  DEC Alpha/OSF-1

- ALPHAMP

  DEC Alpha/OSF-1 / using shared memory

- AIX46K

  IBM/RS6000 / AIX 4.x

- AIX4MP

  IBM SMP / shared memory transport / AIX 4.x

- AIX4SP2

  IBM SP-2 / using MPI / AIX 4.x

- APOLLO

  HP 300 running Domain/OS

- ATT

  AT&T/NCR 3600 running SysVR4

- BAL

  Sequent Balance

- BFLY

  BBN Butterfly TC2000

- BSD386

  80\[345\]86 running BSDI or BSD386

- CM2

  Thinking Machines CM-2 Sun front-end

- CM5

  Thinking Machines CM-5

- CNVX

  Convex using IEEE floating-point

- CNVXN

  Convex using native f.p.

- CRAY

  Cray

- CRAY2

  Cray-2

- CRAYSMP

  Cray S-MP

- CSPP

  Convex Exemplar

- DGAV

  Data General Aviion

- E88K

  Encore 88000

- FREEBSD

  80\[345\]86 running FreeBSD

- HP300

  HP 9000 68000 cpu

- HPPA

  HP 9000 PA-Risc

- HPPAMP

  HP 9000 PA-Risc / shared memory transport

- KSR1

  Kendall Square

- I860

  Intel RX Hypercube

- IPSC2

  Intel IPSC/2

- LINUX

  80\[345\]86 running Linux

- M88K

  Motorola M88100 running Real/IX

- M88K

  Motorola M88100 running Real/IX

- MASPAR

  Maspar

- MIPS

  Mips

- NETBSDAMIGA

  Amiga running NetBSD

- NETBSDHP300

  HP 300 running NetBSD

- NETBSDI386

  80\[345\]86 running NetBSD

- NETBSDMAC68K

  Macintosh running NetBSD

- NETBSDPMAX

  DEC Pmax running NetBSD

- NETBSDSPARC

  Sparc running NetBSD

- NETBSDSUN3

  SUN 3 running NetBSD

- NEXT

  NeXT

- PGON

  Intel Paragon

- PMAX

  DEC/Mips arch (3100, 5000, etc.)

- RS6K

  IBM/RS6000 / AIX 3.x

- RS6KMP

  IBM SMP / shared memory transport / AIX 3.x

- RT

  IBM/RT

- SCO

  80\[345\]86 running SCO Unix

- SGI

  Silicon Graphics IRIS

- SGI5

  Silicon Graphics IRIS running OS \>= 5.0

- SGI64

  Silicon Graphics IRIS running OS \>= 6.0

- SGIMP

  Silicon Graphics IRIS / OS 5.x / using shared memory

- SGIMP64

  Silicon Graphics IRIS / OS 6.x / using shared memory

- SP2MPI

  IBM SP-2 / using MPI / AIX 3.x

- SUN3

  Sun 3

- SUN4

  Sun 4, 4c, sparc, etc.

- SUN4SOL2

  Sun 4 running Solaris 2.x

- SUNMP

  Sun 4 / using shared memory / Solaris 2.x

- SX3

  NEC SX-3

- SYMM

  Sequent Symmetry

- TITN

  Stardent Titan

- U370

  IBM 3090 running AIX

- UTS2

  Amdahl running UTS

- UVAX

  DEC/Microvax

- UXPM

  Fujitsu running UXP/M

- VCM2

  Thinking Machines CM-2 Vax front-end

- X86SOL2

  80\[345\]86 running Solaris 2.x

## ENVIRONMENT VARIABLES

The following environment variables are read by PVM and may be set in order to customize your PVM environment. To set them, you can add commands to your *.cshrc* or *.profile* file. See the manual page for the shell you normally use for information about how to do this.

For *csh* users: Note that setting them in *.login* does not have the same effect.  .login is only read when you are actually logging in, whereas .cshrc is read every time csh starts up. PVM needs to have environment variables set when it starts a slave pvmd with "rsh host pvmd ...", so they must be set in .cshrc.

\[v3.3.10 and later\] For those using a shell that doesn't always read a startup script (e.g. *sh*, *ksh*), there is another way to set environment variables for PVM. Before running the PVM executables, the *pvm* and *pvmd* startup scripts source any commands in *$HOME/.pvmprofile* if this file exists. You will still need to use pvmd host file options (e.g. dx=) or environment variables (PVM\_DPATH) on the master host to tell PVM where things are installed on slave hosts.

- PVM\_ROOT

  The path where PVM libraries and system programs are installed, for example /usr/local/pvm3 or $HOME/pvm3. This variable must be set on each host where PVM is used in order for PVM to function. There is no default value.

- PVM\_EXPORT

  Names of environment variables to export from a parent task to children tasks through *pvm\_spawn()*. Multiple names must be separated by ':'. If PVM\_EXPORT is not set, no environment is exported.

- PVM\_DEBUGGER

  The debugger script to use when *pvm\_spawn()* is called with *PvmTaskDebug* set. The default is $PVM\_ROOT/lib/debugger.

- PVM\_DPATH

  \[v3.3.2 and later\] The path of the pvmd startup script (default is $PVM\_ROOT/lib/pvmd). It is overridden by host file option *dx=*.

  This variable is useful if you use a shell that doesn't automatically execute a startup script (such as .cshrc) to allow setting PVM\_ROOT on slave (added) hosts. If you set it to the absolute or relative path of the pvmd startup script (for example /usr/local/pvm3/lib/pvmd or pvm3/lib/pvmd), the script will automatically set PVM\_ROOT. Note that for this to work, you must set it to run the pvmd script, not the pvmd3 executable itself.

- PVMDLOGMAX

  \[v3.3.8 and later\] Sets the maximum length of the pvmd error log file. Default value is the PVMDLOGMAX parameter in the source, 1 Mbyte.

- PVMDDEBUG

  \[v3.3.8 and later\] Sets the default pvmd debugging mask (as does the pvmd -d option). Value can be in hexadecimal (0x...), octal (0...) or decimal. Used to debug the pvmd (not intended to be used to debug application programs).

- PVMTASKDEBUG

  \[v3.3.8 and later\] Sets the default libpvm debugging mask (as does pvm\_setopt(PvmDebugMask, x)). Value can be in hexadecimal (0x...), octal (0...) or decimal. Used to debug libpvm (not intended to be used to debug application programs).

- PVMBUFSIZE

  Sets the size of the shared memory buffers used by libpvm and the pvmd. The default value is 1048576. If your program composes messages longer than this size, you must increase it.

- PVMKEY

  PVM uses this value, combined with the process id, to generate shared-memory segment keys. The default value is your numeric uid. PVM automatically detects collisions when generating a key and picks a new key, so it should almost never need to be set explicitly.

The following environment variables are used by PVM internally. With the exception of PVM\_ARCH, their values should not be modified. This is for information only.

- PVM\_ARCH

  The PVM architecture name of the host on which it is set, used to distinguish between machines with different executable (a.out) formats. Copies of a program for different architectures are installed in parallel directories named for PVM architectures.

- PVMSOCK

  Is passed from pvmd to spawned task, and gives the address of the pvmd local socket.

- PVMEPID

  Holds the expected process id of a spawned task exec'd by the pvmd. This is a magic cookie used by the task to identify itself when reconnecting to the pvmd, in order to get the correct task slot.

- PVMTMASK

  \[v3.3 and later\] The libpvm trace mask, passed from the pvmd to spawned tasks.

## SEE ALSO

aimk(1PVM), pvm(1PVM), pvmd3(1PVM), PVM 3.3 User's Guide and Reference Manual

## AUTHORS

A. L. Beguelin \[4,5\], J. J. Dongarra \[1,2\], G. A. Geist \[2\], W. C. Jiang \[1\], R. J. Manchek \[1\], B. K. Moore \[1\], V. S. Sunderam \[3\]

1\.  University of Tennessee, Knoxville TN.\
 2\.  Oak Ridge National Laboratory, Oak Ridge TN.\
 3\.  Emory University, Atlanta GA.\
 4\.  Carnegie Mellon University, Pittsburgh PA\
 5\.  Pittsburgh Supercomputer Center, Pittsburgh PA
