|
|
MPI & PVM ComparisonMessage passing is a programming paradigm where you directly control the flow of operations and data within your parallel program. A message-passing library lets you explicitly tell each processor what to do and provides a mechanism for you to transfer data between processes. Message-passing libraries can be implemented using two separate standards, MPI (Message Passing Interface) and PVM (Parallel Virtual Machine). PVM, written at Oak Ridge National Lab, is a portable heterogeneous message-passing system. It provides tools for inter-process communication, process spawning, and execution on multiple architectures. The PVM standard is well defined, and PVM has been a standard tool for parallel computing for several years. MPI came into the mainstream more recently than PVM, but it is a mature standard that has been available for over a decade. The public domain implementation was written at Argonne National Lab and is currently available for virtually all major computer architectures. MPI is intended primarily for data-parallel problems. Therefore, it does not have the flexibility of PVM's dynamic process spawning, but its collective operations (like gather-scatter operations) and asynchronous message passing capabilities (asynchronous sends and receives) are much more sophisticated and configurable than those in PVM. When to Use Message PassingThe decision to use message passing to implement your parallel code should not be taken lightly. Using message passing to implement code is often substantially more work than using compiler directives. For many applications that involve mostly array operations, the native Fortran or C compiler produces as good if not better performing code than a message-passing implementation. However, there are several situations in which message passing is the best solution to your parallel programming problem:
Source: The National Center for Supercomputing Applications, University of Illinois Contact us to receive a free price quote and to discuss your specific high-performance system requirements. We'll listen to your requests and help you put together a system or cluster with a configuration that works to fit your computing needs. |