next up previous
Next: Performance Comparison Up: PVM Previous: PVM

Algorithm Architecture on PVM

Figure 3: Process architecture on PVM

Only few modifications were necessary to adapt our Parix application to the PVM programming model. Both models provide similar constructs for the communication interfaces. Compared to Parix, PVM is lacking a common `execution context' for sharing objects among tasks running on the same processor. Therefore, we had to implement a mechanism for sharing the frontier nodes by explicit message transfer. In PVM, all synchronization and information sharing is solely done via messages, even when running on the same processor. While this is certainly the most abstract (hardware independent) approach, it might cause unnecessary inefficiencies.

In our implementation (Fig. 3) the frontier nodes array is maintained by the the communicator task. When a worker task runs out of work, it sends a message to its communicator executing on the same node. When there are no work packets left in the frontier nodes array, the communicator task sends -- as before -- a request to it neighboring processors. However, unlike in the Parix approach, work packets are directly returned to the requester. This does not cause any extra programming effort, because PVM implies a clique network, directly connecting every processor to every other.

Tue May 16 19:29:30 MET DST 1995