xenial (1) pvmd3.1PVM.gz

Provided by: pvm_3.4.5-12.6ubuntu1_amd64 bug

NAME

       pvmd, pvmd3 - PVM daemon

SYNOPSIS

       pvmd [ -options ] [ hostfile ]

DESCRIPTION

       Pvmd3  is a daemon process which coordinates unix hosts in a virtual machine.  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 intended 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 interface.

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

       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 command.  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 environment 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 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  "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 internals.

                        ***  Make  Sure *** that you appropriately set the $PVM_VMID environment variable in any
                        shells from which PVM application 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 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).

       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.  Information 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 using 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 recommended 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 behind 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)