PVM



PVM_INTRO(1PVM)                 PVM Version 3.4                PVM_INTRO(1PVM)




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  computa-
       tional resource.

       The  individual  computers  may be shared- or local-memory multiproces-
       sors, 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 mem-
                            ory
              SGIMP6        Silicon Graphics IRIS / OS 6.x / using shared mem-
                            ory
              SGIMP64       Silicon Graphics IRIS / 64 bit / using shared mem-
                            ory
              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 com-
       mands 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 log-
       ging 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  func-
              tion.  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 sub-
              directory  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 sys-
              tem.  By default,  PVM  looks  in  $HOME/pvm3/bin/$PVM_ARCH  and
              $PVM_ROOT/bin/$PVM_ARCH  for  your PVM applications.  This envi-
              ronment 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 sep-
              arated  by  ’:’.   If  PVM_EXPORT  is not set, no environment is
              exported.

       PVM_DEBUGGER
              The debugger script to use when pvm_spawn() is called with  Pvm-
              TaskDebug 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 automat-
              ically execute a startup script (such as .cshrc) to  allow  set-
              ting  PVM_ROOT  on  slave  (added)  hosts.  If you set it to the
              absolute or relative path of the pvmd startup script (for  exam-
              ple  /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 syn-
              tax        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 PvmTaskDe-
              bug 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 com-
              poses 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 multi-
              ple 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  pro-
              vide  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  vir-
              tual  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  necessar-
              ily  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  architec-
              tures are installed in parallel directories named for PVM archi-
              tectures.

       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 cor-
              rect task slot.

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

       PVMTRCBUF
              The libpvm trace buffer size.  If specified determines the  num-
              ber  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  trac-
              ing to be performed on invocations of PVM library calls.

       PVMINPLACEDELAY
              Used  to optimize sending of PvmDataInPlace messages on MPP sys-
              tems.

       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)

Man(1) output converted with man2html