Message Passing
Message Passing
Message Passing refers to a communication method in distributed systems, where processes or processors exchange data by explicitly sending and receiving messages, enabling them to coordinate and collaborate on tasks.
What does Message Passing mean?
Message passing is a paradigm for concurrent computation in which processes communicate by exchanging messages. Each Process has its own private memory and can send and receive messages to and from other processes. Messages can contain data, requests for data, or requests for services.
Message passing is one of two main paradigms for concurrent computation, the other being shared memory. In shared memory, all processes have access to a common memory space. This can lead to race conditions, in which two or more processes attempt to access the same memory location at the same time, resulting in unpredictable behavior. Message passing avoids race conditions because each process has its own private memory.
Message passing is a more scalable than shared memory because it does not require all processes to be able to access the same memory space. This makes it possible to build large-scale parallel systems using message passing.
Applications
Message passing is used in a wide variety of applications, including:
- High-performance computing: Message passing is used to parallelize scientific and engineering applications That require large amounts of computational power.
- Distributed systems: Message passing is used to build distributed systems, in which multiple computers work together to provide a single Service.
- Networking: Message passing is used in networking protocols to send data from one computer to another.
History
The first message passing system was developed in the 1970s by researchers at the University of California, Berkeley. This system was called the Locus distributed operating system. Locus was used to build a distributed file system that allowed users to share files across multiple computers.
In the 1980s, message passing was adopted by the Message Passing Interface (MPI) consortium. MPI is a standard for message passing that is used by many parallel programming languages. MPI has been used to develop a wide variety of parallel applications, including scientific and engineering applications, distributed systems, and networking protocols.
Message passing continues to be an important paradigm for concurrent computation. It is used in a wide variety of applications and is supported by a variety of programming languages and Libraries.