Blocking Communication
Here the rest of the code does not get executed until the the communication process is completed.
Ex: MPI_Send, MPI_Receive
- Don’t have to worry about synchronisation.
- Less efficient
non-Blocking Communication
Here the rest of the code gets executed as the communication process is completes in the background.
Ex: MPI_Isend, MPI_Ireceive
- Need additional functions like MPI_Wait() in order to ensure synchronization.
- Efficient use of computational resources.