=============================== OVERVIEW =======================================
Pypvm is a Python module which allows interaction with the
Parallel Virtual Machine (PVM) package. PVM allows a collection
of computers connected by a network to serve as a single parallel
computer. More information about the PVM package can be found at
http://www.epm.ornl.gov/pvm/.
Pypvm is intended to be an educational and prototyping tool. To use
Pypvm, import the pypvm module.
Pypvm includes the sample files master_test.py and slave_test.py.
Put slave_test.py in your PVM search path and execute master_test.py to
test your configuration and demonstrate the use of pypvm.
The primary author of pypvm, W. Michael Petullo, can be contacted at
[email protected].
=============================== BUILDING =======================================
To build Pypvm, cross your fingers and try:
make -f Makefile.pre.in boot
make
I am in the process of migrating to the standard GNU build system.
Because of this, you may see some files related to GNU automake and
autoconf. Please ignore them for the time being.
=============================== NASTY DETAILS ==================================
PypvmError
An exception raised by pypvm.
mytid ()
Returns the integer task identifier (TID) of the calling PVM
process.
exit ()
Tells the local pvmd that this process is leaving PVM.
spawn (task, argv, flag, where, ntask)
Starts a new PVM process. Task is a character string which
is the executable file name of the PVM process to be started.
Argv is a list of arguments to the executable. Flag is an integer
specifying spawn options, and can be the sum of: PvmTaskDefault,
PvmTaskHost, PvmTaskArch, PvmTaskDebug, PvmTaskTrace, PvmMppFront,
and PvmHostCompl. Where is a character string specifying where
to start the PVM process; if where is 0, it will be ignored and
PVM will select the most appropriate host. Ntask is an integer
specifying the number of copies of the executable to start.
Spawn returns a list containing the TIDs of spawned tasks.
kill (tid)
Terminates a PVM process, specified by TID.
catchout (filename)
Catch output from child tasks and print to filename.
parent ()
Returns the TID of the process that spawned the calling process.
tidtohost (tid)
Returns the host of a PVM process, specified by TID.
config (nhosts)
Returns information about the current virtual machine
configuration.
tasks (which, ntasks)
Returns information about the tasks running on the virtual
machine.
addhosts (hosts)
Adds hosts to the virtual machine. Hosts is a list of character
string host names. Addhosts returns a list containing the status
of each host.
delhosts (hosts)
Deletes hosts from the virtual machine. Hosts is a list of
character string host names. Delhosts returns a list containing
the status of each host.
sendsig (tid, signum)
Sends a signal to another PVM process. Tid is an integer
representing the task to send the signal to. Signum is the
number of the signal to send.
notify (what, msgtag, cnt, tids)
Requests notification of PVM event. What is type of event to
trigger notification, and is one of the following: PvmTaskExit,
PvmHostDelete, or PvmHostAdd. Msgtag is the message tag to be
used for notification. Cnt, for PvmTaskExit and PvmHostDelete,
specifies the length of the TIDs list. Otherwise, cnt specifies
the number of times to notify. Tids is an array of length cnt
of TIDs and is not used with PvmHostAdd.
setopt (what, val)
Sets a libpvm option. What is an integer specifying what to set.
Val is an integer value to set the option to.
getopt (what)
Gets a libpvm option. Returns the value of option what.
initsend (encoding)
Clear default send buffer and specify message encoding. Encoding
is an integer specifying the next message's encoding scheme.
Encoding can be PvmDataDefault, PvmDataRaw, or PvmDataInPlace.
mkbuf (encoding)
Creates a new message buffer. Encoding is an integer representing
the encoding method to be used. Mkbuf returns the new buffer's
identifier.
freebuf (bufid)
Disposes of the message buffer with identifier bufid.
get[rs]buf ()
Returns the message buffer identifier for the active receive/send
buffer.
set[rs]buf (bufid)
Switches the active receive/send buffer to bufid and returns
the previous buffer identifier.
pk (object)
Pack the active message buffer with an arbitrary Python data type.
pkbyte (list, stride)
pkcplx (list, stride)
pkdcplx (list, stride)
pkdouble (list, stride)
pkfloat (list, stride)
pkint (list, stride)
pklong (list, stride)
pkshort (list, stride)
Packs list into the active send buffer, using stride.
pkstr (str)
Packs a string into the active send buffer.
send (tid, msgtag)
Immediately sends the data in the active message buffer.
Tid is the TID of the destination process. Msgtag is an integer
message tag.
mcast (tids, msgtag)
Multicasts the data in the active message buffer to a set
of tasks. Tids is a list of TIDs to send the message to.
Msgtag is an integer message tag.
recv (tid, msgtag)
Receive a message. Tid is the TID of the sending process.
Msgtag is an integer message tag. Recv returns the bufid of
the buffer the message was read from.
nrecv (tid, msgtag)
Same as recv, but performs a non-blocking receive. Tid is the
TID of the sending process. Msgtag is an integer message tag.
Timeout is the time, in seconds, to wait for the message.
Nrecv returns the bufid of the buffer the message was read from.
probe (tid, msgtag)
Check if a message has arrived. Tid is the TID of the sending
process. Msgtag is an integer message tag.
trecv (tid, msgtag, timeout)
Receive a message with a timeout.
bufinfo (bufid)
Returns information about a message buffer. Bufid is an integer
message buffer identifier.
upk ()
Unpack an arbitrary Python data type from the active message buffer.
upkbyte (nitems, stride)
upkcplx (nitems, stride)
upkdcplx (nitems, stride)
upkdouble (nitems, stride)
upkfloat (nitems, stride)
upkint (nitems, stride)
upklong (nitems, stride)
Unpacks nitems items from active receive buffer, using stride.
upkstr ()
Unpacks a string from the active receive buffer.
tuperror ()
Returns the most recent PVM error number and value.