=============================== 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 pypvm@flyn.org. =============================== 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.