Provided by: pvm_3.4.6-2build1_amd64 bug


       PVM, pvm_intro - Parallel Virtual Machine System Version 3


       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.


       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
              CYGWIN        POSIX emulation layer on top of Windows32
              DGAV,DGIX     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
              LINUXALPHA    DEC Alpha running Linux
              LINUXARM      Strogarm running Linux
              LINUXHPPA     HP 9000 running Linux
              LINUXPPC      PowerPC running Linux
              LINUXSPARC    Sparc running Linux
              M88K          Motorola M88100 running Real/IX
              M88K          Motorola M88100 running Real/IX
              MASPAR        Maspar
              MIPS          Mips
              NETBSDALPHA   DEC Alpha running NetBSD
              NETBSDAMIGA   Amiga running NetBSD
              NETBSDARM32   Strongarm running NetBSD
              NETBSDHP300   HP 300 running NetBSD
              NETBSDI386    80[345]86 running NetBSD
              NETBSDM68K    Any Motorola 68K running NetBSD
              NETBSDMAC68K  Macintosh running NetBSD
              NETBSDMIPSEB  Mips EB running NetBSD
              NETBSDMIPSEL  Mips EL running NetBSD
              NETBSDNS32K   NS32K running NetBSD
              NETBSDPMAX    DEC Pmax running NetBSD
              NETBSDPOWERPC PowerPC running NetBSD
              NETBSDSH3     SH3 running NetBSD
              NETBSDSPARC   Sparc running NetBSD
              NETBSDSPARC64 Sparc64 running NetBSD
              NETBSDSUN3    SUN 3 running NetBSD
              NETBSDVAX     Vax running NetBSD
              NEXT          NeXT
              OS2           OS/2
              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
              SGI6          Silicon Graphics IRIS running OS >= 6.0
              SGI64         Silicon Graphics IRIS running 64 bit
              SGIMP         Silicon Graphics IRIS / OS 5.x / using shared memory
              SGIMP6        Silicon Graphics IRIS / OS 6.x / using shared memory
              SGIMP64       Silicon Graphics IRIS / 64 bit / 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
              UWARE         Uware
              UXPM          Fujitsu running UXP/M
              VCM2          Thinking Machines CM-2 Vax front-end
              WIN32         Windows 95/98/NT
              X86SOL2       80[345]86 running Solaris 2.x


       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  or
       equivalent  shell  startup  file.   See the manual page for the shell you normally use for
       information about how to do this.  You can also include an appropriate shell startup  file
       stub  to  set PVM environment variables and to add PVM directories to your execution path.
       Inert   the   matching   stub   file,    pvm3/lib/cshrc.stub,    pvm3/lib/kshrc.stub    or
       pvm3/lib/bashrc.stub, after your declaration of PVM_ROOT in your shell startup file.

       For csh users: Note that setting them in .login does not have the same effect.  The .login
       script file 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.

       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.

       The following environment variables are supported by PVM 3.4.4:

              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.

              The path for PVM temporary files, such as the daemon socket file pvmd.<uid> and the
              log  file  pvml.<uid>.  Use this environment variable to use a directory other than
              /tmp (or C:\TEMP on Win32), or to introduce added security  by  using  a  protected
              subdirectory in /tmp that is owned by your userid and cannot be easily corrupted.

              The path to the "rsh" program on your system, if different than that defined in the
              $PVM_ROOT/conf/$PVM_ARCH.def configuration file.   This  environment  variable  can
              also be used to replace "rsh" with "ssh" for added security.

              The execution path to be searched for PVM programs on your system.  By default, PVM
              looks  in  $HOME/pvm3/bin/$PVM_ARCH  and  $PVM_ROOT/bin/$PVM_ARCH  for   your   PVM
              applications.   This  environment  variable  does  not  override  the ep= host file

       PVM_WD The working directory for spawned PVM programs on your  system.   By  default,  PVM
              spawns  your  PVM  applications  in $HOME, but for convenience in accessing data or
              input files using relative path  names,  an  alternate  working  directory  can  be
              specified.  This environment variable does not override the wd= host file option.

              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.

              The  debugger  script to use when pvm_spawn() is called with PvmTaskDebug set.  The
              default is $PVM_ROOT/lib/debugger.

              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.

              This variable serves the same purpose as the PVM_DPATH above, but specifically  for
              Win32 systems.  This second environment variable allows for alternate specification
              of the path to the pvmd3.exe daemon executable  using  appropriate  DOS  file  path
              syntax and environment variables (e.g. %PVM_ROOT%\lib\WIN32\pvmd3.exe).

              Specifies  the  path  to  an optional host file to be used by default when starting
              PVM.  This alleviates the need to manually pass a host file path  argument  to  the
              "pvm" console or "pvmd" script when starting PVM.

              Sets  the  maximum  length  of  the  pvmd  error  log  file.   Default value is the
              PVMDLOGMAX parameter in the source, 1 Mbyte.

              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).

              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).

              Sets additional flag bits for the pvm_spawn() library call.  Allows override at run
              time  of flags compiled into the pvm_spawn() calls in PVM application, e.g. to turn
              on PvmTaskDebug for popping up child tasks in a debugger window.

              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.

              A new feature in PVM 3.4.4 is the concept of a "Virtual Machine ID".  You  can  now
              set  the  PVM_VMID  environment  variable  to an arbitrary string (or use the "id="
              option in a host file, see man page for pvmd3), and this will distinguish and allow
              multiple  virtual  machines  to run on the same set of hosts under the same userid.
              (This feature was originally introduced by SGI in their commercial PVM product, and
              has  now  been  generalized  for  the public PVM system.)  This feature seems to be
              something that people often want, and the PVM_VMID is the cleanest way  to  provide
              this  functionality,  rather than overloading the SHAREDTMP compiler flag and other

              Setting the PVM_VMID environment  variable  before  starting  PVM  will  create  an
              encapsulated virtual machine with the given VMID name.  By default, all other hosts
              which are added to this virtual machine will inherit the same VMID.  If  hosts  are
              added  to  the  virtual  machine  which are running older versions of PVM (prior to
              3.4.4), then the VMID will be ignored for those hosts, and hence these machines can
              only  be  added  to  one  virtual machine for the given user.  The VMID need not be
              consistent on every host in a virtual machine (although  this  is  not  necessarily
              advisable),  and the VMID can be set for individual hosts using the "id=" host file
              option (see man page for pvmd3).

       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.

              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

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

              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.

              The libpvm trace mask, passed from the pvmd to spawned tasks.

              The libpvm trace buffer size.  If specified determines the number of bytes of trace
              event message buffer to be collected before sending to front-end tracer program.

              The libpvm trace option setting.  Determines the level of tracing to  be  performed
              on invocations of PVM library calls.

              Used to optimize sending of PvmDataInPlace messages on MPP systems.

       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.


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


       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

                                          11 April, 1995                          PVM_INTRO(1PVM)