Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
PVM_INTRO(1PVM)			PVM Version 3.4		       PVM_INTRO(1PVM)

       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  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 be-
       tween 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 mem-
	      SGIMP6	    Silicon Graphics IRIS / OS 6.x / using shared mem-
	      SGIMP64	    Silicon Graphics IRIS / 64 bit / using shared mem-
	      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 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:

	      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.

	      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.

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

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

	      The  debugger script to use when pvm_spawn() is called with Pvm-
	      TaskDebug	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 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 ab-
	      solute or	relative path of the pvmd startup script (for  example
	      /usr/local/pvm3/lib/pvmd	or pvm3/lib/pvmd), the script will au-
	      tomatically 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 syn-
	      tax	  and	     environment	variables	 (e.g.

	      Specifies	the path to an optional	host file to be	 used  by  de-
	      fault  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  op-
	      tion).   Value  can  be  in hexadecimal (0x...), octal (0...) or
	      decimal.	Used to	debug the pvmd (not intended to	be used	to de-
	      bug application programs).

	      Sets   the  default  libpvm  debugging  mask  (as	 does  pvm_se-
	      topt(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.  Al-
	      lows override at run time	of flags compiled into the pvm_spawn()
	      calls in PVM application,	e.g. to	turn on	PvmTaskDebug for  pop-
	      ping 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  com-
	      poses 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	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 ma-
	      chine 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 us-
	      ing 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 architec-
	      tures are	installed in parallel directories named	for PVM	archi-

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

	      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 it-
	      self 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 num-
	      ber of bytes of trace event message buffer to be	collected  be-
	      fore sending to front-end	tracer program.

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

	      Used to optimize sending of PvmDataInPlace messages on MPP  sys-

       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

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

       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)


Want to link to this manual page? Use this URL:

home | help