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

FreeBSD Manual Pages

  
 
  

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

NAME
     pvmd, pvmd3 - PVM daemon

SYNOPSIS
     pvmd [ -options ] [ hostfile ]

DESCRIPTION
     Pvmd3  is	a  daemon  process which coordinates unix hosts in a virtual ma-
     chine.  One pvmd3 must run on each host in the  group.   They  provide  the
     communication  and  process  control  functions  needed  by  the user's PVM
     processes.  The daemon can be started manually with a  host  file	argument
     that will automatically start the remote pvmds.  The local and remote pvmds
     can also be started from the PVM console program pvm.

     The  name	of  the  daemon executable is pvmd3.  It is usually started by a
     shell script, $PVM_ROOT/lib/pvmd.

     [v3.4 and later]  Before  running	pvmd3,	pvmd  sources  any  commands  in
     $HOME/.pvmprofile if this file exists.

OPTIONS
     The  following  options  may be specified on the command line when starting
     the master pvmd or PVM console:

     -dmask  Set pvmd debug mask.  Used to debug the pvmd  or  libpvm  (not  in-
	     tended  to be used to debug application programs).  Mask is the sum
	     of the following bits and can be specified in hexadecimal	(0x...),
	     octal (0...) or decimal:
		 Bit	 Information
		 0x1	 Packet routing
		 0x2	 Message routing and entry points
		 0x4	 Task state
		 0x8	 Slave pvmd startup
		 0x10	 Host table updates
		 0x20	 Select loop (below packet layer)
		 0x40	 IP network
		 0x80	 Multiprocessor nodes
		 0x100	 Resource manager interface
		 0x200	 Application (messages with no destination, etc.)
		 0x400	 Wait contexts
		 0x800	 Shared memory operations
		 0x1000  Semaphores
		 0x2000  Locks
		 0x4000  Message route control

     -nname  Specify  an  alternate hostname for the master pvmd to use.  Useful
	     when gethostname() returns a name not assigned to any  network  in-
	     terface.

     The  following options are used by the master pvmd when starting slaves and
     are only of interest to someone writing a	hoster.   Don't  just  go  using
     them, now.

     -s     Start  pvmd in slave mode.	Hostfile cannot be used, five additional
	    parameters must be supplied: master pvmd index,  master  IP,  master
	    MTU, slave pvmd index, and slave IP.

     -S     Same  as  -s, but slave pvmd doesn't wait for its stdin to be closed
	    after printing its parameters.  Used for manual startup.

     -f     Slave doesn't fork after configuration (useful if the slave is to be
	    controlled or monitored by some process).

HOST FILE FORMAT
     Each host in the virtual machine must have  an  entry  in	the  host  file.
     Lines  beginning with a splat ( # ), optionally preceded by whitespace, are
     ignored.

     A simple host file might look like:

	  # my first host file
	  thud
	  fred
	  wilma
	  barney
	  betty

     This specifies the names of five hosts to be configured in the virtual  ma-
     chine.

     The  master  pvmd	for  a group is started by hand on the localhost, and it
     starts slaves on each of the remaining hosts using the rsh  or  rexec  com-
     mand.  The master host may appear on any line of the host file.  Host names
     cannot  be  numeric  (IP)	addresses,  because  they  are passed to rsh and
     rexec(), which usually don't accept addresses.

     The simple format above works fine if you have the same login name  on  all
     five  machines and the name of the master host in your .rhosts files on the
     other four.

     There are several host file options available:

	    lo=NAME   Specifies an alternate login name (NAME) to use.

	    so=pw     This is necessary when the remote host  cannot  trust  the
		      master.	Causes	the master pvmd to prompt for a password
		      for the remote host in the tty of the pvmd (note you can't
		      start the master using the console or background	it  when
		      using this option) you will see:
			   Password (honk.cs.utk.edu:manchek):
		      you  should  type  your password for the remote host.  The
		      startup will then continue as normal.

	    dx=FILE   Specifies the path of the pvmd executable.  FILE may be  a
		      simple  filename, an absolute pathname, or a path relative
		      to the user's home directory on the remote host.	This  is
		      mainly useful to aid in debugging new versions of PVM, but
		      may have other uses.

	    ep=PATH   Specifies  a  path  for  the pvmd to search for executable
		      program components when spawning a new process.  The  path
		      may have multiple elements, separated by colons ( : ).

	    wd=PATH   Specifies  a  working directory in which all spawned tasks
		      on this host will execute.

	    sp=VALUE  Specifies the relative computational speed  of  this  host
		      compared to other hosts in the configuration.  VALUE is an
		      integer in the range [1 - 1000000]

	    bx=PATH   Specifies  the  debugger program path.  Note: the environ-
		      ment variable PVM_DEBUGGER can also be set.

	    ip=NAME   Specifies an alternate IP address to use for the host.  As
		      with host names (when ip= is not used), the  address  must
		      be  a  host  name,  not  a  numeric address, because it is
		      passed to rsh and rexec().  This option allows one to pick
		      a specific network interface for a machine  without  using
		      the  interface's	name.	It  can also be used to create a
		      virtual machine using symbolic (instead  of  actual)  host
		      names.

	    so=ms     Rarely  used.   Causes  the master pvmd to request user to
		      manually perform the startup of a pvmd  on  a  slave  host
		      when  rsh  and  rexec network services are disabled but IP
		      connectivity exists.  See section "MANUAL STARTUP".

	    id=VMID   A new feature in PVM 3.4.4 is the concept  of  a	"Virtual
		      Machine  ID".   You  can	now set the VMID to an arbitrary
		      string and this will distinguish and allow  multiple  vir-
		      tual  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 gen-
		      eralized	for  the public PVM system.)  This feature seems
		      to be something that people  often  want,  and  the  "id="
		      hostfile option (or $PVM_VMID environment variable) is the
		      cleanest	way  to  provide this functionality, rather than
		      overloading the SHAREDTMP compiler flag and  other  inter-
		      nals.

		      *** Make Sure *** that you appropriately set the $PVM_VMID
		      environment variable in any shells from which PVM applica-
		      tion  tasks or the "pvm" console will be run, or else they
		      won't know which virtual machine to attach to!

		      By default, all hosts which are added to the  virtual  ma-
		      chine  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).

     A dollar sign ( $ ) in an option introduces a variable  name,  for  example
     $PVM_ARCH.  Names are expanded from environment variables by each pvmd.

     Each of the flags above has a default value.  These are:
	    lo	    The loginname on the master host.
	    so	    Nothing
	    dx	    $PVM_ROOT/lib/pvmd (or environment variable PVM_DPATH)
	    ep	    $HOME/pvm3/bin/$PVM_ARCH:$PVM_ROOT/bin/$PVM_ARCH
	    wd	    $HOME
	    sp	    1000
	    bx	    $PVM_ROOT/lib/debugger

     You  can change these by adding a line with a star ( * ) in the first field
     followed by the options, for example:

	  * lo=afriend so=pw

     This sets new default values for 'lo' and 'so' for  the  remainder  of  the
     host  file,  or  until the next '*' line.	Options set on the last '*' line
     also apply to hosts added dynamically using pvm_addhosts().

     Host options can be set without starting the hosts automatically.	Informa-
     tion on host file lines beginning with '&' is stored, but the hosts are not
     started until added using pvm_addhosts().

     Example host file:
	  # host file for testing on various platforms
	  fonebone
	  refuge
	  # installed in /usr/local here
	  sigi.cs	     dx=/usr/local/pvm3/lib/pvmd
	  # borrowed accts, "guest", don't trust fonebone
	  *		     lo=guest  so=pw
	  sn666.jrandom.com
	  cubie.misc.edu
	  # really painful one, must start it by hand and share a homedir
	  & igor.firewall.com  lo=guest2  so=ms  ep=bob/pvm3/bin/$PVM_ARCH

MANUAL STARTUP
     When adding a host with this option set you will see  on  the  tty  of  the
     pvmd:
	  *** Manual startup ***
	  Login to "honk" and type:
	  $PVM_ROOT/lib/pvmd -S -d0 -nhonk 1 80a9ca95:0cb6 4096 2 80a95c43:0000
	  Type response:

     after typing the given command on host honk, you should see a line like:
	  ddpro<2312> arch<ALPHA> ip<80a95c43:0a8e> mtu<4096>

     type this line on the tty of the master pvmd.  You should then see:
	  Thanks

     and the two pvmds should be able to communicate.

     Note you can't start the master using the console or background it when us-
     ing this option.

OVERLOADING HOSTS
     You  can  force  PVM to overload a host (start more than one pvmd on it) by
     putting a '$' before the host name in the host file.  This  is  not  recom-
     mended  unless  you  know	what you're doing and have a good reason for it.
     You must build the PVM source with option OVERLOADHOST defined  for  it  to
     work.

     You  may  also  need to use the ip= hostfile option to define several names
     with the same IP address.	If two or more hosts in  a  PVM  have  the  same
     name, they cannot be identified uniquely.

STOPPING PVMD3
     The  preferred method of stopping all the pvmds is to give the halt command
     in the PVM console. This kills all PVM tasks, all the remote  daemons,  the
     local daemon, and finally the console itself.  If the master pvmd is killed
     manually  it should be sent a SIGTERM signal to allow it to kill the remote
     pvmds and clean up various files.

     The pvmd can be killed in a manner that leaves the file  /tmp/pvmd.uid  be-
     hind  on  one or more hosts.  Uid is the numeric user ID (from /etc/passwd)
     of the user.  This will prevent PVM from restarting on that host.	Deletion
     of this file will fix this problem:

	 rm `( grep $user /etc/passwd || ypmatch $user passwd )
	      | awk -F: '{print "/tmp/pvmd."$3; exit}'`

FILES
       $PVM_ROOT/lib/pvmd  PVM daemon startup script
       $PVM_ROOT/lib/$PVM_ARCH/pvmd3 PVM daemon executable
       $HOME/.pvmprofile Shell commands read by pvmd before
	 running pvmd3
       $HOME/pvm3/bin/$PVM_ARCH  Private PVM executable directory
       $PVM_ROOT/pvm3/bin/$PVM_ARCH  System PVM executable directory
       /tmp/pvmd.uid Pvmd local socket address
       /tmp/pvml.uid Pvmd runtime error log
       $HOME/.rhosts File allowing access to a host from
	 other hosts

SEE ALSO
     pvm(1PVM), pvm_intro(1PVM), rhosts(5)

				  06 May, 1994			      PVMD(1PVM)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=pvmd3&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help