1PVM_INTRO(1PVM) PVM Version 3.4 PVM_INTRO(1PVM)
2
3
4
6 PVM, pvm_intro - Parallel Virtual Machine System Version 3
7
9 PVM is a software system that enables a collection of heterogeneous
10 computers to be used as a coherent and flexible concurrent computa‐
11 tional resource.
12
13 The individual computers may be shared- or local-memory multiproces‐
14 sors, vector supercomputers, specialized graphics engines, or scalar
15 workstations, that may be interconnected by a variety of networks, such
16 as ethernet, FDDI.
17
18 User programs written in C, C++ or Fortran access PVM through library
19 routines (libpvm3.a and libfpvm3.a).
20
21 Daemon programs (pvmd3) provide communication and process control
22 between computers.
23
25 In the PVM system, machines are assigned a short string to identify
26 their architectures (this includes operating system type as well as CPU
27 type). The types currently predefined in the distribution are:
28 AFX8 Alliant FX/8
29 ALPHA DEC Alpha/OSF-1
30 ALPHAMP DEC Alpha/OSF-1 / using shared memory
31 AIX46K IBM/RS6000 / AIX 4.x
32 AIX4MP IBM SMP / shared memory transport / AIX 4.x
33 AIX4SP2 IBM SP-2 / using MPI / AIX 4.x
34 APOLLO HP 300 running Domain/OS
35 ATT AT&T/NCR 3600 running SysVR4
36 BAL Sequent Balance
37 BFLY BBN Butterfly TC2000
38 BSD386 80[345]86 running BSDI or BSD386
39 CM2 Thinking Machines CM-2 Sun front-end
40 CM5 Thinking Machines CM-5
41 CNVX Convex using IEEE floating-point
42 CNVXN Convex using native f.p.
43 CRAY Cray
44 CRAY2 Cray-2
45 CRAYSMP Cray S-MP
46 CSPP Convex Exemplar
47 CYGWIN POSIX emulation layer on top of Windows32
48 DGAV,DGIX Data General Aviion
49 E88K Encore 88000
50 FREEBSD 80[345]86 running FreeBSD
51 HP300 HP 9000 68000 cpu
52 HPPA HP 9000 PA-Risc
53 HPPAMP HP 9000 PA-Risc / shared memory transport
54 KSR1 Kendall Square
55 I860 Intel RX Hypercube
56 IPSC2 Intel IPSC/2
57 LINUX 80[345]86 running Linux
58 LINUXALPHA DEC Alpha running Linux
59 LINUXARM Strogarm running Linux
60 LINUXHPPA HP 9000 running Linux
61 LINUXPPC PowerPC running Linux
62 LINUXSPARC Sparc running Linux
63 M88K Motorola M88100 running Real/IX
64 M88K Motorola M88100 running Real/IX
65 MASPAR Maspar
66 MIPS Mips
67 NETBSDALPHA DEC Alpha running NetBSD
68 NETBSDAMIGA Amiga running NetBSD
69 NETBSDARM32 Strongarm running NetBSD
70 NETBSDHP300 HP 300 running NetBSD
71 NETBSDI386 80[345]86 running NetBSD
72 NETBSDM68K Any Motorola 68K running NetBSD
73 NETBSDMAC68K Macintosh running NetBSD
74 NETBSDMIPSEB Mips EB running NetBSD
75 NETBSDMIPSEL Mips EL running NetBSD
76 NETBSDNS32K NS32K running NetBSD
77 NETBSDPMAX DEC Pmax running NetBSD
78 NETBSDPOWERPC PowerPC running NetBSD
79 NETBSDSH3 SH3 running NetBSD
80 NETBSDSPARC Sparc running NetBSD
81 NETBSDSPARC64 Sparc64 running NetBSD
82 NETBSDSUN3 SUN 3 running NetBSD
83 NETBSDVAX Vax running NetBSD
84 NEXT NeXT
85 OS2 OS/2
86 PGON Intel Paragon
87 PMAX DEC/Mips arch (3100, 5000, etc.)
88 RS6K IBM/RS6000 / AIX 3.x
89 RS6KMP IBM SMP / shared memory transport / AIX 3.x
90 RT IBM/RT
91 SCO 80[345]86 running SCO Unix
92 SGI Silicon Graphics IRIS
93 SGI5 Silicon Graphics IRIS running OS 5.0
94 SGI6 Silicon Graphics IRIS running OS >= 6.0
95 SGI64 Silicon Graphics IRIS running 64 bit
96 SGIMP Silicon Graphics IRIS / OS 5.x / using shared mem‐
97 ory
98 SGIMP6 Silicon Graphics IRIS / OS 6.x / using shared mem‐
99 ory
100 SGIMP64 Silicon Graphics IRIS / 64 bit / using shared mem‐
101 ory
102 SP2MPI IBM SP-2 / using MPI / AIX 3.x
103 SUN3 Sun 3
104 SUN4 Sun 4, 4c, sparc, etc.
105 SUN4SOL2 Sun 4 running Solaris 2.x
106 SUNMP Sun 4 / using shared memory / Solaris 2.x
107 SX3 NEC SX-3
108 SYMM Sequent Symmetry
109 TITN Stardent Titan
110 U370 IBM 3090 running AIX
111 UTS2 Amdahl running UTS
112 UVAX DEC/Microvax
113 UWARE Uware
114 UXPM Fujitsu running UXP/M
115 VCM2 Thinking Machines CM-2 Vax front-end
116 WIN32 Windows 95/98/NT
117 X86SOL2 80[345]86 running Solaris 2.x
118
119
121 The following environment variables are read by PVM and may be set in
122 order to customize your PVM environment. To set them, you can add com‐
123 mands to your .cshrc or .profile or equivalent shell startup file. See
124 the manual page for the shell you normally use for information about
125 how to do this. You can also include an appropriate shell startup file
126 stub to set PVM environment variables and to add PVM directories to
127 your execution path. Inert the matching stub file,
128 pvm3/lib/cshrc.stub, pvm3/lib/kshrc.stub or pvm3/lib/bashrc.stub, after
129 your declaration of PVM_ROOT in your shell startup file.
130
131 For csh users: Note that setting them in .login does not have the same
132 effect. The .login script file is only read when you are actually log‐
133 ging in, whereas .cshrc is read every time csh starts up. PVM needs to
134 have environment variables set when it starts a slave pvmd with "rsh
135 host pvmd ...", so they must be set in .cshrc.
136
137 For those using a shell that doesn't always read a startup script (e.g.
138 sh, ksh), there is another way to set environment variables for PVM.
139 Before running the PVM executables, the pvm and pvmd startup scripts
140 source any commands in $HOME/.pvmprofile if this file exists.
141
142 The following environment variables are supported by PVM 3.4.4:
143
144 PVM_ROOT
145 The path where PVM libraries and system programs are installed,
146 for example /usr/local/pvm3 or $HOME/pvm3. This variable must
147 be set on each host where PVM is used in order for PVM to func‐
148 tion. There is no default value.
149
150 PVM_TMP
151 The path for PVM temporary files, such as the daemon socket file
152 pvmd.<uid> and the log file pvml.<uid>. Use this environment
153 variable to use a directory other than /tmp (or C:\TEMP on
154 Win32), or to introduce added security by using a protected sub‐
155 directory in /tmp that is owned by your userid and cannot be
156 easily corrupted.
157
158 PVM_RSH
159 The path to the "rsh" program on your system, if different than
160 that defined in the $PVM_ROOT/conf/$PVM_ARCH.def configuration
161 file. This environment variable can also be used to replace
162 "rsh" with "ssh" for added security.
163
164 PVM_PATH
165 The execution path to be searched for PVM programs on your sys‐
166 tem. By default, PVM looks in $HOME/pvm3/bin/$PVM_ARCH and
167 $PVM_ROOT/bin/$PVM_ARCH for your PVM applications. This envi‐
168 ronment variable does not override the ep= host file option.
169
170 PVM_WD The working directory for spawned PVM programs on your system.
171 By default, PVM spawns your PVM applications in $HOME, but for
172 convenience in accessing data or input files using relative path
173 names, an alternate working directory can be specified. This
174 environment variable does not override the wd= host file option.
175
176 PVM_EXPORT
177 Names of environment variables to export from a parent task to
178 children tasks through pvm_spawn(). Multiple names must be sep‐
179 arated by ':'. If PVM_EXPORT is not set, no environment is
180 exported.
181
182 PVM_DEBUGGER
183 The debugger script to use when pvm_spawn() is called with Pvm‐
184 TaskDebug set. The default is $PVM_ROOT/lib/debugger.
185
186 PVM_DPATH
187 The path of the pvmd startup script (default is
188 $PVM_ROOT/lib/pvmd). It is overridden by host file option dx=.
189
190 This variable is useful if you use a shell that doesn't automat‐
191 ically execute a startup script (such as .cshrc) to allow set‐
192 ting PVM_ROOT on slave (added) hosts. If you set it to the
193 absolute or relative path of the pvmd startup script (for exam‐
194 ple /usr/local/pvm3/lib/pvmd or pvm3/lib/pvmd), the script will
195 automatically set PVM_ROOT. Note that for this to work, you
196 must set it to run the pvmd script, not the pvmd3 executable
197 itself.
198
199 PVM_WINDPATH
200 This variable serves the same purpose as the PVM_DPATH above,
201 but specifically for Win32 systems. This second environment
202 variable allows for alternate specification of the path to the
203 pvmd3.exe daemon executable using appropriate DOS file path syn‐
204 tax and environment variables (e.g.
205 %PVM_ROOT%\lib\WIN32\pvmd3.exe).
206
207 PVMHOSTFILE
208 Specifies the path to an optional host file to be used by
209 default when starting PVM. This alleviates the need to manually
210 pass a host file path argument to the "pvm" console or "pvmd"
211 script when starting PVM.
212
213 PVMDLOGMAX
214 Sets the maximum length of the pvmd error log file. Default
215 value is the PVMDLOGMAX parameter in the source, 1 Mbyte.
216
217 PVMDDEBUG
218 Sets the default pvmd debugging mask (as does the pvmd -d
219 option). Value can be in hexadecimal (0x...), octal (0...) or
220 decimal. Used to debug the pvmd (not intended to be used to
221 debug application programs).
222
223 PVMTASKDEBUG
224 Sets the default libpvm debugging mask (as does
225 pvm_setopt(PvmDebugMask, x)). Value can be in hexadecimal
226 (0x...), octal (0...) or decimal. Used to debug libpvm (not
227 intended to be used to debug application programs).
228
229 PVMTASK
230 Sets additional flag bits for the pvm_spawn() library call.
231 Allows override at run time of flags compiled into the
232 pvm_spawn() calls in PVM application, e.g. to turn on PvmTaskDe‐
233 bug for popping up child tasks in a debugger window.
234
235 PVMBUFSIZE
236 Sets the size of the shared memory buffers used by libpvm and
237 the pvmd. The default value is 1048576. If your program com‐
238 poses messages longer than this size, you must increase it.
239
240 PVM_VMID
241 A new feature in PVM 3.4.4 is the concept of a "Virtual Machine
242 ID". You can now set the PVM_VMID environment variable to an
243 arbitrary string (or use the "id=" option in a host file, see
244 man page for pvmd3), and this will distinguish and allow multi‐
245 ple virtual machines to run on the same set of hosts under the
246 same userid. (This feature was originally introduced by SGI in
247 their commercial PVM product, and has now been generalized for
248 the public PVM system.) This feature seems to be something that
249 people often want, and the PVM_VMID is the cleanest way to pro‐
250 vide this functionality, rather than overloading the SHAREDTMP
251 compiler flag and other internals.
252 Setting the PVM_VMID environment variable before starting PVM
253 will create an encapsulated virtual machine with the given VMID
254 name. By default, all other hosts which are added to this vir‐
255 tual machine will inherit the same VMID. If hosts are added to
256 the virtual machine which are running older versions of PVM
257 (prior to 3.4.4), then the VMID will be ignored for those hosts,
258 and hence these machines can only be added to one virtual
259 machine for the given user. The VMID need not be consistent on
260 every host in a virtual machine (although this is not necessar‐
261 ily advisable), and the VMID can be set for individual hosts
262 using the "id=" host file option (see man page for pvmd3).
263
264 The following environment variables are used by PVM internally. With
265 the exception of PVM_ARCH, their values should not be modified. This
266 is for information only.
267
268 PVM_ARCH
269 The PVM architecture name of the host on which it is set, used
270 to distinguish between machines with different executable
271 (a.out) formats. Copies of a program for different architec‐
272 tures are installed in parallel directories named for PVM archi‐
273 tectures.
274
275 PVMSOCK
276 Is passed from pvmd to spawned task, and gives the address of
277 the pvmd local socket.
278
279 PVMEPID
280 Holds the expected process id of a spawned task exec'd by the
281 pvmd. This is a magic cookie used by the task to identify
282 itself when reconnecting to the pvmd, in order to get the cor‐
283 rect task slot.
284
285 PVMTMASK
286 The libpvm trace mask, passed from the pvmd to spawned tasks.
287
288 PVMTRCBUF
289 The libpvm trace buffer size. If specified determines the num‐
290 ber of bytes of trace event message buffer to be collected
291 before sending to front-end tracer program.
292
293 PVMTRCOPT
294 The libpvm trace option setting. Determines the level of trac‐
295 ing to be performed on invocations of PVM library calls.
296
297 PVMINPLACEDELAY
298 Used to optimize sending of PvmDataInPlace messages on MPP sys‐
299 tems.
300
301 PVMKEY PVM uses this value, combined with the process id, to generate
302 shared-memory segment keys. The default value is your numeric
303 uid. PVM automatically detects collisions when generating a key
304 and picks a new key, so it should almost never need to be set
305 explicitly.
306
308 aimk(1PVM), pvm(1PVM), pvmd3(1PVM), PVM 3.3 User's Guide and Reference
309 Manual
310
312 A. L. Beguelin [4,5], J. J. Dongarra [1,2], G. A. Geist [2], W. C.
313 Jiang [1], R. J. Manchek [1], B. K. Moore [1], V. S. Sunderam [3]
314
315 1. University of Tennessee, Knoxville TN.
316 2. Oak Ridge National Laboratory, Oak Ridge TN.
317 3. Emory University, Atlanta GA.
318 4. Carnegie Mellon University, Pittsburgh PA
319 5. Pittsburgh Supercomputer Center, Pittsburgh PA
320
321
322
323 11 April, 1995 PVM_INTRO(1PVM)