The following environment variables are read by PVM and may be set in order to customize your PVM
environment. To set them, you can add commands to your .cshrc or .profile or equivalent shell startup
file. See the manual page for the shell you normally use for information about how to do this. You can
also include an appropriate shell startup file stub to set 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.
For csh users: Note that setting them in .login does not have the same effect. The .login script file is
only read when you are actually logging in, whereas .cshrc is read every time csh starts up. PVM needs
to have environment variables set when it starts a slave pvmd with "rsh host pvmd ...", so they must be
set in .cshrc.
For those using a shell that doesn't always read a startup script (e.g. sh, ksh), there is another way to
set environment variables for PVM. Before running the PVM executables, the pvm and pvmd startup scripts
source any commands in $HOME/.pvmprofile if this file exists.
The following environment variables are supported by PVM 3.4.4:
PVM_ROOT
The path where PVM libraries and system programs are installed, for example /usr/local/pvm3 or
$HOME/pvm3. This variable must be set on each host where PVM is used in order for PVM to
function. There is no default value.
PVM_TMP
The path for PVM temporary files, such as the daemon socket file pvmd.<uid> and the log file
pvml.<uid>. Use this environment variable to use a directory other than /tmp (or C:\TEMP on
Win32), or to introduce added security by using a protected subdirectory in /tmp that is owned by
your userid and cannot be easily corrupted.
PVM_RSH
The path to the "rsh" program on your system, if different than that defined in the
$PVM_ROOT/conf/$PVM_ARCH.def configuration file. This environment variable can also be used to
replace "rsh" with "ssh" for added security.
PVM_PATH
The execution path to be searched for PVM programs on your system. By default, PVM looks in
$HOME/pvm3/bin/$PVM_ARCH and $PVM_ROOT/bin/$PVM_ARCH for your PVM applications. This environment
variable does not override the ep= host file option.
PVM_WD The working directory for spawned PVM programs on your system. By default, PVM spawns your PVM
applications in $HOME, but for convenience in accessing data or input files using relative path
names, an alternate working directory can be specified. This environment variable does not
override the wd= host file option.
PVM_EXPORT
Names of environment variables to export from a parent task to children tasks through pvm_spawn().
Multiple names must be separated by ':'. If PVM_EXPORT is not set, no environment is exported.
PVM_DEBUGGER
The debugger script to use when pvm_spawn() is called with PvmTaskDebug set. The default is
$PVM_ROOT/lib/debugger.
PVM_DPATH
The path of the pvmd startup script (default is $PVM_ROOT/lib/pvmd). It is overridden by host
file option dx=.
This variable is useful if you use a shell that doesn't automatically execute a startup script
(such as .cshrc) to allow setting PVM_ROOT on slave (added) hosts. If you set it to the absolute
or relative path of the pvmd startup script (for example /usr/local/pvm3/lib/pvmd or
pvm3/lib/pvmd), the script will automatically set PVM_ROOT. Note that for this to work, you must
set it to run the pvmd script, not the pvmd3 executable itself.
PVM_WINDPATH
This variable serves the same purpose as the PVM_DPATH above, but specifically for Win32 systems.
This second environment variable allows for alternate specification of the path to the pvmd3.exe
daemon executable using appropriate DOS file path syntax and environment variables (e.g.
%PVM_ROOT%\lib\WIN32\pvmd3.exe).
PVMHOSTFILE
Specifies the path to an optional host file to be used by default when starting PVM. This
alleviates the need to manually pass a host file path argument to the "pvm" console or "pvmd"
script when starting PVM.
PVMDLOGMAX
Sets the maximum length of the pvmd error log file. Default value is the PVMDLOGMAX parameter in
the source, 1 Mbyte.
PVMDDEBUG
Sets the default pvmd debugging mask (as does the pvmd -d option). Value can be in hexadecimal
(0x...), octal (0...) or decimal. Used to debug the pvmd (not intended to be used to debug
application programs).
PVMTASKDEBUG
Sets the default libpvm debugging mask (as does pvm_setopt(PvmDebugMask, x)). Value can be in
hexadecimal (0x...), octal (0...) or decimal. Used to debug libpvm (not intended to be used to
debug application programs).
PVMTASK
Sets additional flag bits for the pvm_spawn() library call. Allows override at run time of flags
compiled into the pvm_spawn() calls in PVM application, e.g. to turn on PvmTaskDebug for popping
up child tasks in a debugger window.
PVMBUFSIZE
Sets the size of the shared memory buffers used by libpvm and the pvmd. The default value is
1048576. If your program composes messages longer than this size, you must increase it.
PVM_VMID
A new feature in PVM 3.4.4 is the concept of a "Virtual Machine ID". You can now set the PVM_VMID
environment variable to an arbitrary string (or use the "id=" option in a host file, see man page
for pvmd3), and this will distinguish and allow multiple virtual machines to run on the same set
of hosts under the same userid. (This feature was originally introduced by SGI in their
commercial PVM product, and has now been generalized for the public PVM system.) This feature
seems to be something that people often want, and the PVM_VMID is the cleanest way to provide this
functionality, rather than overloading the SHAREDTMP compiler flag and other internals.
Setting the PVM_VMID environment variable before starting PVM will create an encapsulated virtual
machine with the given VMID name. By default, all other hosts which are added to this virtual
machine will inherit the same VMID. If hosts are added to the virtual machine which are running
older versions of PVM (prior to 3.4.4), then the VMID will be ignored for those hosts, and hence
these machines can only be added to one virtual machine for the given user. The VMID need not be
consistent on every host in a virtual machine (although this is not necessarily advisable), and
the VMID can be set for individual hosts using the "id=" host file option (see man page for
pvmd3).
The following environment variables are used by PVM internally. With the exception of PVM_ARCH, their
values should not be modified. This is for information only.
PVM_ARCH
The PVM architecture name of the host on which it is set, used to distinguish between machines
with different executable (a.out) formats. Copies of a program for different architectures are
installed in parallel directories named for PVM architectures.
PVMSOCK
Is passed from pvmd to spawned task, and gives the address of the pvmd local socket.
PVMEPID
Holds the expected process id of a spawned task exec'd by the pvmd. This is a magic cookie used
by the task to identify itself when reconnecting to the pvmd, in order to get the correct task
slot.
PVMTMASK
The libpvm trace mask, passed from the pvmd to spawned tasks.
PVMTRCBUF
The libpvm trace buffer size. If specified determines the number of bytes of trace event message
buffer to be collected before sending to front-end tracer program.
PVMTRCOPT
The libpvm trace option setting. Determines the level of tracing to be performed on invocations
of PVM library calls.
PVMINPLACEDELAY
Used to optimize sending of PvmDataInPlace messages on MPP systems.
PVMKEY PVM uses this value, combined with the process id, to generate shared-memory segment keys. The
default value is your numeric uid. PVM automatically detects collisions when generating a key and
picks a new key, so it should almost never need to be set explicitly.