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

NAME

6       PVM, pvm_intro - Parallel Virtual Machine System Version 3
7

DESCRIPTION

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

MACHINE ARCHITECTURE

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

ENVIRONMENT VARIABLES

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

SEE ALSO

308       aimk(1PVM), pvm(1PVM), pvmd3(1PVM), PVM 3.3 User's Guide and  Reference
309       Manual
310

AUTHORS

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