1. Parallel Virtual Machine (PVM) :
PVM is a type of software tool which is designed for heterogeneous distributed computing. This software was created at the Oak Ridge National Laboratory in 1989 and it was rewritten in 1991 at the university of Tennessee. In this system, it allows a heterogeneous network which can be made from a collection of distributed processors which is viewed as a single parallel virtual machine. It permits a collection of heterogeneous UNIX and/or Windows machines which can be used a single large parallel computer. It uses simple languages like C/C++, FORTRAN to implement parallel computing.
2. Message Passing Interface (MPI) :
MPI is a type of message passing library standard. It is library not a programming language and this library is used by the compilers. It is the method which is commonly used for programming distributed memory systems. It is used to define routines. It is useful on distributed memory machines. It supports programming languages like C, C++, FORTRAN and JAVA. It supports the communication modes i.e., standards, synchronous, buffered and ready.
Difference between Parallel Virtual Machine (PVM) and Message Passing Interface (MPI) :
|1.||Standard||It is the standard used for heterogeneous distributed computing.||It is the standard used for the message passing.|
|2.||Concept||It is the concept of virtual machine.||It does not have such kind of abstraction.|
|3.||Heterogeneity||It supports heterogeneity in the terms of machines, networks, and applications.||It supports heterogeneity in the terms of communication of heterogeneous messages.|
|4.||Operating system||It is distributed operating system.||It is not a distributed operating system, it is the library for writing application program.|
|5.||Message support||It supports simple message.||It supports rich message.|
|6.||Topology||In this no topology is used.||It supports logical communication topology.|
|7.||Portability||It is portable over performance.||It is portable over flexibility.|
|8.||Category||It is a programming language.||it is the library which is used by compilers.|
|9.||Control||It holds it’s control over process and resources.||It is only concerned about the message passing.|
|10.||Fault Tolerance||It has a strong fault tolerance.||It is more susceptible to faults.|
|11.||Nature||It is dynamically reconfigurable.||It is a static model.|