1PVMD(1PVM)                      PVM Version 3.4                     PVMD(1PVM)
2
3
4

NAME

6       pvmd, pvmd3 - PVM daemon
7

SYNOPSIS

9       pvmd [ -options ] [ hostfile ]
10

DESCRIPTION

12       Pvmd3  is  a  daemon  process which coordinates unix hosts in a virtual
13       machine.  One pvmd3 must run on each host in the group.   They  provide
14       the  communication  and  process control functions needed by the user's
15       PVM processes.  The daemon can be started manually  with  a  host  file
16       argument that will automatically start the remote pvmds.  The local and
17       remote pvmds can also be started from the PVM console program pvm.
18
19       The name of the daemon executable is pvmd3.  It is usually started by a
20       shell script, $PVM_ROOT/lib/pvmd.
21
22       [v3.4  and  later]  Before  running pvmd3, pvmd sources any commands in
23       $HOME/.pvmprofile if this file exists.
24
25

OPTIONS

27       The following options may be specified on the command line when  start‐
28       ing the master pvmd or PVM console:
29
30       -dmask  Set  pvmd  debug  mask.   Used to debug the pvmd or libpvm (not
31               intended to be used to debug application  programs).   Mask  is
32               the sum of the following bits and can be specified in hexadeci‐
33               mal (0x...), octal (0...) or decimal:
34                   Bit     Information
35                   0x1     Packet routing
36                   0x2     Message routing and entry points
37                   0x4     Task state
38                   0x8     Slave pvmd startup
39                   0x10    Host table updates
40                   0x20    Select loop (below packet layer)
41                   0x40    IP network
42                   0x80    Multiprocessor nodes
43                   0x100   Resource manager interface
44                   0x200   Application (messages with no destination, etc.)
45                   0x400   Wait contexts
46                   0x800   Shared memory operations
47                   0x1000  Semaphores
48                   0x2000  Locks
49                   0x4000  Message route control
50
51
52       -nname  Specify an alternate hostname for the master pvmd to use.  Use‐
53               ful  when gethostname() returns a name not assigned to any net‐
54               work interface.
55
56       The following options are used by the master pvmd when starting  slaves
57       and  are  only  of interest to someone writing a hoster.  Don't just go
58       using them, now.
59
60       -s     Start pvmd in slave mode.  Hostfile cannot be used,  five  addi‐
61              tional  parameters  must  be supplied: master pvmd index, master
62              IP, master MTU, slave pvmd index, and slave IP.
63
64       -S     Same as -s, but slave pvmd doesn't wait  for  its  stdin  to  be
65              closed after printing its parameters.  Used for manual startup.
66
67       -f     Slave  doesn't  fork after configuration (useful if the slave is
68              to be controlled or monitored by some process).
69

HOST FILE FORMAT

71       Each host in the virtual machine must have an entry in the  host  file.
72       Lines  beginning with a splat ( # ), optionally preceded by whitespace,
73       are ignored.
74
75       A simple host file might look like:
76
77            # my first host file
78            thud
79            fred
80            wilma
81            barney
82            betty
83
84       This specifies the names of five hosts to be configured in the  virtual
85       machine.
86
87       The master pvmd for a group is started by hand on the localhost, and it
88       starts slaves on each of the remaining hosts using  the  rsh  or  rexec
89       command.   The  master  host  may  appear on any line of the host file.
90       Host names cannot be numeric (IP) addresses, because they are passed to
91       rsh and rexec(), which usually don't accept addresses.
92
93       The  simple  format above works fine if you have the same login name on
94       all five machines and the name of the master host in your .rhosts files
95       on the other four.
96
97       There are several host file options available:
98
99              lo=NAME   Specifies an alternate login name (NAME) to use.
100
101
102              so=pw     This  is  necessary  when the remote host cannot trust
103                        the master.  Causes the master pvmd to  prompt  for  a
104                        password  for  the  remote host in the tty of the pvmd
105                        (note you can't start the master using the console  or
106                        background it when using this option) you will see:
107                             Password (honk.cs.utk.edu:manchek):
108                        you  should  type  your  password for the remote host.
109                        The startup will then continue as normal.
110
111
112              dx=FILE   Specifies the path of the pvmd executable.   FILE  may
113                        be  a simple filename, an absolute pathname, or a path
114                        relative to the user's home directory  on  the  remote
115                        host.   This  is mainly useful to aid in debugging new
116                        versions of PVM, but may have other uses.
117
118
119              ep=PATH   Specifies a path for the pvmd to search for executable
120                        program  components  when spawning a new process.  The
121                        path may have multiple elements, separated by colons (
122                        : ).
123
124
125              wd=PATH   Specifies  a  working  directory  in which all spawned
126                        tasks on this host will execute.
127
128
129              sp=VALUE  Specifies the relative  computational  speed  of  this
130                        host  compared  to  other  hosts in the configuration.
131                        VALUE is an integer in the range [1 - 1000000]
132
133
134              bx=PATH   Specifies the debugger program path.  Note: the  envi‐
135                        ronment variable PVM_DEBUGGER can also be set.
136
137
138              ip=NAME   Specifies an alternate IP address to use for the host.
139                        As with host names (when ip= is not used), the address
140                        must be a host name, not a numeric address, because it
141                        is passed to rsh and rexec().  This option allows  one
142                        to  pick  a  specific  network interface for a machine
143                        without using the interface's name.  It  can  also  be
144                        used  to  create  a  virtual  machine  using  symbolic
145                        (instead of actual) host names.
146
147
148              so=ms     Rarely used.  Causes the master pvmd to  request  user
149                        to  manually  perform the startup of a pvmd on a slave
150                        host when rsh and rexec network services are  disabled
151                        but  IP  connectivity  exists.   See  section  "MANUAL
152                        STARTUP".
153
154
155              id=VMID   A new feature in PVM 3.4.4 is the concept of  a  "Vir‐
156                        tual  Machine  ID".   You  can  now set the VMID to an
157                        arbitrary string and this will distinguish  and  allow
158                        multiple  virtual  machines  to run on the same set of
159                        hosts under the same userid.  (This feature was origi‐
160                        nally  introduced by SGI in their commercial PVM prod‐
161                        uct, and has now been generalized for the  public  PVM
162                        system.)  This feature seems to be something that peo‐
163                        ple often want, and  the  "id="  hostfile  option  (or
164                        $PVM_VMID environment variable) is the cleanest way to
165                        provide this functionality,  rather  than  overloading
166                        the SHAREDTMP compiler flag and other internals.
167
168                        ***  Make  Sure  ***  that  you  appropriately set the
169                        $PVM_VMID environment  variable  in  any  shells  from
170                        which  PVM application tasks or the "pvm" console will
171                        be run, or else they won't know which virtual  machine
172                        to attach to!
173
174                        By  default,  all hosts which are added to the virtual
175                        machine will inherit the  same  VMID.   If  hosts  are
176                        added  to  the virtual machine which are running older
177                        versions of PVM (prior to 3.4.4), then the  VMID  will
178                        be  ignored  for those hosts, and hence these machines
179                        can only be added to one virtual machine for the given
180                        user.   The  VMID need not be consistent on every host
181                        in a virtual machine (although this is not necessarily
182                        advisable).
183
184       A  dollar sign ( $ ) in an option introduces a variable name, for exam‐
185       ple $PVM_ARCH.  Names are expanded from environment variables  by  each
186       pvmd.
187
188       Each of the flags above has a default value.  These are:
189              lo      The loginname on the master host.
190              so      Nothing
191              dx      $PVM_ROOT/lib/pvmd (or environment variable PVM_DPATH)
192              ep      $HOME/pvm3/bin/$PVM_ARCH:$PVM_ROOT/bin/$PVM_ARCH
193              wd      $HOME
194              sp      1000
195              bx      $PVM_ROOT/lib/debugger
196
197       You  can  change  these by adding a line with a star ( * ) in the first
198       field followed by the options, for example:
199
200            * lo=afriend so=pw
201
202       This sets new default values for 'lo' and 'so' for the remainder of the
203       host  file,  or  until  the next '*' line.  Options set on the last '*'
204       line also apply to hosts added dynamically using pvm_addhosts().
205
206       Host options can be  set  without  starting  the  hosts  automatically.
207       Information  on  host  file lines beginning with '&' is stored, but the
208       hosts are not started until added using pvm_addhosts().
209
210       Example host file:
211            # host file for testing on various platforms
212            fonebone
213            refuge
214            # installed in /usr/local here
215            sigi.cs            dx=/usr/local/pvm3/lib/pvmd
216            # borrowed accts, "guest", don't trust fonebone
217            *                  lo=guest  so=pw
218            sn666.jrandom.com
219            cubie.misc.edu
220            # really painful one, must start it by hand and share a homedir
221            & igor.firewall.com  lo=guest2  so=ms  ep=bob/pvm3/bin/$PVM_ARCH
222
223

MANUAL STARTUP

225       When adding a host with this option set you will see on the tty of  the
226       pvmd:
227            *** Manual startup ***
228            Login to "honk" and type:
229            $PVM_ROOT/lib/pvmd -S -d0 -nhonk 1 80a9ca95:0cb6 4096 2 80a95c43:0000
230            Type response:
231
232       after  typing  the  given  command  on host honk, you should see a line
233       like:
234            ddpro<2312> arch<ALPHA> ip<80a95c43:0a8e> mtu<4096>
235
236       type this line on the tty of the master pvmd.  You should then see:
237            Thanks
238
239       and the two pvmds should be able to communicate.
240
241       Note you can't start the master using the console or background it when
242       using this option.
243
244

OVERLOADING HOSTS

246       You  can  force PVM to overload a host (start more than one pvmd on it)
247       by putting a '$' before the host name in the host file.   This  is  not
248       recommended  unless  you  know what you're doing and have a good reason
249       for it.  You must build the PVM source with option OVERLOADHOST defined
250       for it to work.
251
252       You  may  also  need  to  use the ip= hostfile option to define several
253       names with the same IP address.  If two or more hosts in a PVM have the
254       same name, they cannot be identified uniquely.
255
256

STOPPING PVMD3

258       The preferred method of stopping all the pvmds is to give the halt com‐
259       mand in the PVM console. This kills all PVM tasks, all the remote  dae‐
260       mons,  the local daemon, and finally the console itself.  If the master
261       pvmd is killed manually it should be sent a SIGTERM signal to allow  it
262       to kill the remote pvmds and clean up various files.
263
264       The  pvmd  can be killed in a manner that leaves the file /tmp/pvmd.uid
265       behind on one or  more  hosts.   Uid  is  the  numeric  user  ID  (from
266       /etc/passwd)  of  the  user.   This will prevent PVM from restarting on
267       that host.  Deletion of this file will fix this problem:
268
269           rm `( grep $user /etc/passwd || ypmatch $user passwd )
270                | awk -F: '{print "/tmp/pvmd."$3; exit}'`
271
272

FILES

274         $PVM_ROOT/lib/pvmd  PVM daemon startup script
275         $PVM_ROOT/lib/$PVM_ARCH/pvmd3 PVM daemon executable
276         $HOME/.pvmprofile Shell commands read by pvmd before
277           running pvmd3
278         $HOME/pvm3/bin/$PVM_ARCH  Private PVM executable directory
279         $PVM_ROOT/pvm3/bin/$PVM_ARCH  System PVM executable directory
280         /tmp/pvmd.uid Pvmd local socket address
281         /tmp/pvml.uid Pvmd runtime error log
282         $HOME/.rhosts File allowing access to a host from
283           other hosts
284
285

SEE ALSO

287       pvm(1PVM), pvm_intro(1PVM), rhosts(5)
288
289
290
291                                 06 May, 1994                       PVMD(1PVM)
Impressum