Provided by: pvm_3.4.6-2build1_amd64 bug


       pvmd, pvmd3 - PVM daemon


       pvmd [ -options ] [ hostfile ]


       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,

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


       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

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


       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

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

              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

       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

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


       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:

       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.


       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


       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}'`


         $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


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

                                           06 May, 1994                                PVMD(1PVM)