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 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236
|
PVM version 3.4: Parallel Virtual Machine System
University of Tennessee, Knoxville TN.
Oak Ridge National Laboratory, Oak Ridge TN.
Emory University, Atlanta GA.
Authors: J. J. Dongarra, G. E. Fagg, G. A. Geist,
J. A. Kohl, R. J. Manchek, P. Mucci,
P. M. Papadopoulos, S. L. Scott, and V. S. Sunderam
(C) 1997 All Rights Reserved
NOTICE
Permission to use, copy, modify, and distribute this software and
its documentation for any purpose and without fee is hereby granted
provided that the above copyright notice appear in all copies and
that both the copyright notice and this permission notice appear in
supporting documentation.
Neither the Institutions (Emory University, Oak Ridge National
Laboratory, and University of Tennessee) nor the Authors make any
representations about the suitability of this software for any
purpose. This software is provided ``as is'' without express or
implied warranty.
PVM version 3 was funded in part by the U.S. Department of Energy,
the National Science Foundation and the State of Tennessee.
________________________________________________________________________
WHAT IS PVM?
PVM is a software system that enables a collection of heterogeneous
computers to be used as a coherent and flexible concurrent computational
resource.
The individual computers may be shared- or local-memory multiprocessors,
vector supercomputers, specialized graphics engines, or scalar
workstations, that may be interconnected by a variety of networks,
such as ethernet, FDDI.
User programs written in C, C++ or Fortran access PVM through library
routines.
UNPACKING
This distribution contains source code, simple examples, and run-time
support for PVM version 3. The documentation for PVM can be obtained
separately from Netlib. To get a list of available subsets, send
e-mail to "netlib@ORNL.GOV" with the subject: "send index from pvm3".
Files in the distribution unpack in directory pvm3. The pvm3 directory
can reside in either a private or shared disk area. Installations for
multiple machine architectures can coexist because compiled files are
placed in subdirectories named for each architecture ($PVM_ARCH).
Some of the more important directories are:
Directory Contains
---------------------------------------------------------------
bin/$PVM_ARCH PVM user program executables (examples & your programs)
conf Make configuration files for all PVM architectures
console Source for the pvm console
doc Miscellaneous documentation
examples Example PVM program source
gexamples More example PVM programs - for group library
hoster An example "hoster" program
include Header files for PVM programs
lib Generic system executables (scripts)
lib/$PVM_ARCH System executables (pvmd, console, etc.)
libfpvm Source for the libfpvm Fortran library
man/man[13] Online manual pages (nroff format)
misc Some PVM examples and utilities
patches Patch files and instructions, as they are released
pvmgs Source for the libgpvm library and group nameserver
rm An example resource manager for PVM
src Source for the libpvm library and pvmd daemon
src/$PVM_ARCH Additional source code for specific machines
tasker An example "tasker" program for PVM
tracer An example "tracer" program for PVM
xep An example interactive X-Window program
BUILDING AND INSTALLING
Before building or running PVM, you must set the environment variable
PVM_ROOT to the path where PVM resides, i.e. the path of this directory.
This can be in a private area, for example $HOME/pvm3, or a public one,
such as /usr/local/pvm3.
If your shell is csh, add a line such as:
setenv PVM_ROOT $HOME/pvm3
to your .cshrc file. If you use a shell that reads .profile, such as sh
or ksh, or .bashrc for bash, add the following lines to that file:
PVM_ROOT=$HOME/pvm3
export PVM_ROOT
The use of this variable and others is explained more fully in the
pvm_intro man page.
You can also include an appropriate shell startup file stub to set
other PVM environment variables and to add PVM directories to your
execution path. Inert the matching stub file, pvm3/lib/cshrc.stub,
pvm3/lib/kshrc.stub or pvm3/lib/bashrc.stub, after your declaration
of PVM_ROOT in your shell startup file.
To build PVM for your system, type "make" in this directory. Make
will use aimk to build the daemon executable (pvmd3), the C library
(libpvm3.a), the Fortran library (libfpvm3.a) and the console client
program (pvm).
The libraries and executables are installed in $PVM_ROOT/lib/$PVM_ARCH,
where $PVM_ARCH is the host architecture name, e.g. "CRAY".
The scripts $PVM_ROOT/lib/pvm and $PVM_ROOT/lib/pvmd are used,
respectively, to start the PVM console and pvmd. They determine
the machine architecture and run the actual programs in the
$PVM_ROOT/lib/$PVM_ARCH directory. You can either copy these
scripts to your bin directory or add $PVM_ROOT/lib to your shell
search path (using the above *.stub files).
You may wish to add $PVM_ROOT/man to your MANPATH environment variable,
if it's supported on your system. This will allow you to easily read
the online manual pages.
STARTING AND STOPPING PVM
To start PVM, run $PVM_ROOT/lib/pvm. This starts the console task,
which in turn starts a pvmd if one is not already running. More hosts
can be started and added to your "virtual machine" by using the console
"add" command.
To start the pvmd without starting the console, you can also run the
$PVM_ROOT/lib/pvmd directly. A number of hosts can all be started at
once by supplying the pvmd with a host file, as in:
$PVM_ROOT/lib/pvmd my_hosts
where "my_hosts" contains the names of the hosts you wish to add,
one host per line. See the pvmd man page for other host file
options.
To stop PVM, use the PVM console command "halt". From within your
user programs, you can use the pvm_halt() function. You can also
kill the pvmd3 process (always use a catchable signal such as
SIGTERM). But, if you do kill the pvmd, or if it fails for some
other reason, always be sure to remove any leftover /tmp/pvmd.<uid>
pvmd socket files, where <uid> is your numerical user id. These
files will make PVM think a pvmd is running, and can cause the
dreaded "Can't Start Pvmd" message.
For more information about the console commands, see the console "help"
function or the console man page.
TROUBLESHOOTING
If you ever have trouble starting PVM or adding a new host to your
virtual machine, verify that there are no leftover /tmp/pvmd.<uid>
daemon socket files on the machines where you are trying to start
PVM (as described above) and then check the local /tmp/pvml.<uid>
log file for any error messages which may help you to determine
the problem.
A common problem is caused by restricted access to a remote machine
via "rsh". PVM uses "rsh" to start the pvmd on a remote host. If
you cannot do this:
% rsh remote_host 'echo $PVM_ROOT'
and successfully get back the correct value of $PVM_ROOT on that
remote host, without typing your password, then that is the problem.
You will need to set up permissions on the remote host to allow rsh
access without a password. On Unix systems, this is accomplished
by creating a $HOME/.rhosts file on the *remote* machine that
provides access to your *local* machine. (Note: the $HOME/.rhosts
file is *NOT* a PVM host file...) The format of a $HOME/.rhosts
file is as follows:
your_host_1 your_login_on_host_1
your_host_2 your_login_on_host_2
your_host_3 your_login_on_host_3
. . .
If you get really stuck, try checking the online FAQ off of the
PVM Home Page:
http://www.netlib.org/pvm3/book/node23.html#SECTION00450000000000000000
APPLICATION PROGRAMS
C, C++ and Fortran programs must be linked with the main PVM library,
$PVM_ROOT/lib/$PVM_ARCH/libpvm3.a, and Fortran programs must also be
linked with the $PVM_ROOT/lib/$PVM_ARCH/libfpvm3.a library file.
User program source files should include the $PVM_ROOT/include/pvm3.h
header file for C/C++ programs, to define PVM constants and function
prototypes. The corresponding Fortran header file is
$PVM_ROOT/include/fpvm3.h.
Executables should be installed in $PVM_ROOT/bin/$PVM_ARCH for a
user installation, and in $HOME/pvm3/bin/$PVM_ARCH for a system-wide
PVM installation (where the user may not be able to write to the
$PVM_ROOT/bin/$PVM_ARCH directory). This default execution path
can be changed; see the "ep=" option on the pvmd man page.
When user programs are spawned by PVM, by default they execute in the
$HOME directory of the user. Any input or data files should therefore
reside in or be linked to $HOME. This default working directory
can be changed; see the "wd=" option on the pvmd man page.
CONTACT
The PVM web home page is at
http://www.epm.ornl.gov/pvm/pvm_home.html .
A newsgroup, comp.parallel.pvm, exists for discussions about PVM
and help with specific problems.
Please direct any e-mail (questions, bugs, bug fixes, etc.) to:
pvm@msr.EPM.ORNL.GOV.
To report bugs or problems with PVM, please see the file
$PVM_ROOT/doc/bugreport .
________________________________________________________________________
Sincerely,
The PVM research group
|