Synchronous and asynchronous communication in MPI
Here is a very nice video from our first training week in EPCC, Edinburgh.
Dr. David Henty describes message passing as an introduction to MPI concepts and the difference between synchronous and asynchronous communication.
In brief, MPI provides communication methods between different processes running on a cluster. Mainly, they are categorized into two types: synchronous and asynchronous. The first, sends data, and returns only after the other side accepted the message. However, the second, return immediately after issuing the send command to allow very fast execution.
Generally, there are several problems that can occur:
- Unordered Messages – With asynchronous messaging, it’s impossible to gaurantee the order by which they arrive at the receiver.
- Deadlock – If both sides combine synchronous send/receive, or unaware for the underlying implementation, like in MPI_Send.
Although it was almost a month ago, it is always nice to get remembered.