The PVM module

The pvm module provides an interface to the pvm library. This section assumes that the reader has read at least some of the pvm documentation.

The module differs from the pvm library in the following ways:

The module exports the following functions:

make-pvm-idCompiler
\begin{arguments}
\item[string] A string
\item [id] An identifier
\end{arguments}
creates a pvm-id which can be used to broadcast to a group of remote processes. Note that this is simply a cons cell.

pvm-statusCompiler
\begin{arguments}
\item[id] Identifier of a pvm-process
\end{arguments}
Query the status of the process with id id.

pvm-sendCompiler
\begin{arguments}
\item[dest] A pvm process identifier
\item[type] The numeric...
...\optional{reader}}] A reader which is used to write the message.
\end{arguments}
Send a message of type type to the process specified by the id dest containing the value msg. If a reader is specified it is used to handle any complex lisp types inside the message.

pvm-recvCompiler
\begin{arguments}
\item[type] The type of message to be recieved
\item[info?] ...
...\optional{reader}}] A reader which is used to read the
message.
\end{arguments}
Block until a message of type type is recieved. If info? is nil, then the message is returned. If info? is non-nil, a list is returned in the following format: (msg type from) where msg is the message, type is the type and from is the process-id of the sending processes.

pvm-recv-multiCompiler
\begin{arguments}
\item[type-list] A list of possible message types
\item[info...
...\optional{reader}}] A reader which is used to read the
message.
\end{arguments}
As pvm-recv, but blocks until a message which has a type in the type-list.

pvm-initiate-by-typeCompiler
\begin{arguments}
\item[type] Type of machine (string)
\item[name] Name of the new process (string)
\end{arguments}
Start a process on a host of the specified type with the name name. It returns the pvm identifier of the process.

pvm-initiate-by-hostnameCompiler
\begin{arguments}
\item[hostname] Hostname in which to start process
\item[name] Name of the new process
\end{arguments}
Start a process on the host with name hostname with the name name

pvm-enrollCompiler
\begin{arguments}
\item[name] A string
\end{arguments}
Enroll into pvm under the given name. Must be called before any other pvm function.

pvm-leaveCompiler Exit from pvm-control. After this is called, all pvm functions return an error message (except pvm-enroll).

pvm-probeCompiler
\begin{arguments}
\item[type] A message type
\end{arguments}
Test for messages of a given type. Returns the type, or nil if no message of that type is in the input queue.

pvm-probe-multiCompiler Test for messages from a list of types. Not yet implemented (as of PVM 2.4). Can be simulated via probe.

pvm-whoamiCompiler Return the pvm-id (the value returned by enroll) of the process.

pvm-make-id-from-pairCompiler
\begin{arguments}
\item[Pair] A pair
\end{arguments}
Construct a pvm-identifier from a cons cell. Mostly used when passing addresses around — when a pvm-id is sent, it is read as a cons-cell. This operation is now a null operation.

The other functions provided are

The Feel versions are untested, but ought to work. See the PVM documentation for details about their functionality.