Next | Prev | Up | Top | Contents | Index

Choosing Between MPI and PVM

Silicon Graphics, Inc. has adopted the MPI interface as the primary and preferred model for concurrent applications on Array processors. There are occasions when you may elect to use PVM instead, but in general MPI is strongly recommended for new applications and for applications that are being ported to an Array system.

In many ways, MPI and PVM are similar:

The primary reason MPI is preferred for Array systems is performance. The design of MPI is such that a highly optimized implementation could be created for the homogenous environment of Silicon Graphics, Inc. Array systems. PVM implementations for Array systems do not perform as well for reasons that are rooted in the PVM interface design.

Another difference is in the support for the "topology" (the interconnect pattern: grid, torus, or tree) of the communicating processes. In MPI, the group size and topology are fixed when the group is created. This permits low-overhead group operations and, because the topology is normally inherent in the algorithmic design, the lack of run-time flexibility is not a problem. In PVM, group composition is dynamic, which requires the use of a "group server" process and causes more overhead in common group-related operations.

Other reasons can be found in the design details of the two interfaces. MPI, for example, supports asynchronous and multiple message traffic, so that a process can wait for any of a list of message-receive calls to complete, and can initiate concurrent sending and receiving. MPI provides for a "context" qualifier as part of the "envelope" of each message. This permits you to build encapsulated libraries that exchange data independently of the data exchanged by the client modules. MPI also provides several elegant data-exchange functions for use by a program that is emulating an SPMD parallel architecture.

PVM is possibly more suitable for distributing a program across a heterogenous network, including both uniprocessors and multiprocessors and including computers from multiple vendors. When the application runs in the environment of a Silicon Graphics, Inc. Array system, MPI is the recommended interface.


Next | Prev | Up | Top | Contents | Index