1PVMD(1PVM) PVM Version 3.4 PVMD(1PVM)
2
3
4
6 pvmd, pvmd3 - PVM daemon
7
9 pvmd [ -options ] [ hostfile ]
10
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
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
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
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
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
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
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
287 pvm(1PVM), pvm_intro(1PVM), rhosts(5)
288
289
290
291 06 May, 1994 PVMD(1PVM)