In this part, we shall talk about about message passing libraries. In history, various message passing libraries have been available since the 1980s. These executions differed substantially from each other making it complex for programmers to develop portable applications. We shall talk about only two worldwide accepted message passing libraries namely; MPI and PVM.
Message Passing Interface (MPI)
The Message Passing Interface (MPI) is a universal standard for providing communication between the multiple concurrent processes on a distributed memory system. Mainly, if not all, of the popular parallel computing platforms present at least one execution of MPI. It was developed from the MPI forum consisting of numerous experts from academics and industry. MPI has been executed as the library of routines that can be called from languages like, C, C++, Fortran, and Ada programs. MPI was expanded in two stages, MPI-1 and MPI-2. MPI-1 was organized in 1994.
Features of MPI-1
- Collective communication,
- Point-to-point communication,
- Process groups and communication domains,
- Binding for Fortran and C and
- Virtual process topologies
Features added in MPI-2
- Dynamic process management,
- Input/output ,
- Binding for C++.
- One-sided operations used for remote memory access.
MPI's benefits over older message passing libraries is that it is both portable (because MPI has been executed for almost each distributed memory architecture) and fast (because each executions is optimized for the hardware it runs on).