Provided by: pvm_3.4.6-2build2_amd64 bug

NAME

       PVM, pvm_intro - 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
              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

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 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:

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

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

       PVM_PATH
              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 option.

       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.

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

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

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

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

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

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

       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.

       PVM_VMID
              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 internals.

              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.

       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
              The libpvm trace mask, passed from the pvmd to spawned tasks.

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

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

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

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

                                                 11 April, 1995                                  PVM_INTRO(1PVM)