1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197
|
pvmd3(1) pvm daemon pvmd3(1)
NAME
pvmd3 - PVM daemon
SYNOPSIS
pvmd3 [ -options ] [ hostfile ] &
DESCRIPTION
pvmd3 is a daemon process which coordinates hosts in a virtual machine. One
pvmd 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.
Local daemon may also be started by the scilab instruction pvm_start() and
remote daemons may also be started by the scilab function pvm_addhosts
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 a hexade-
cimal number which is the sum of the following bits: Bit Information
1 Packet routing
2 Message routing and entry points
4 Task management
8 Slave pvmd startup
10 Host table updates
20 Select loop (below packet layer)
40 IP network
80 Multiprocessor port debugging
100
Resource manager interface
200
Application (messages with no destination, etc.)
-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).
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 com-
mand. The master host may appear on any line of the hostfile, but must have
an entry.
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 multi-
ple 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 vari-
able PVM_DEBUGGER can also be set.
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".
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 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 hostfile:
# hostfile 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
start it by
* lo=guest so=pw sn666.jrandom.com cubie.misc.edu # really painful one, must
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.
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}'`
|