Which of the following statements is not true ?
2014
Which of the following statements is not true ?
- A.
MPI_Isend and MPI_Irecv are non-blocking message passing routines of MPI.
- B.
MPI_Issend and MPI_Ibsend are non-blocking message passing routines of MPI.
- C.
MPI_Send and MPI_Recv are non-blocking message passing routines of MPI.
- D.
MPI_Ssend and MPI_Bsend are blocking message passing routines of MPI.
Attempted by 139 students.
Show answer & explanation
Correct answer: C
Answer: The statement "MPI_Send and MPI_Recv are non-blocking message passing routines of MPI." is not true.
Explanation:
MPI_Isend and MPI_Irecv: non-blocking (immediate) send and receive. They initiate the operation and return; use MPI_Wait or MPI_Test to ensure completion.
MPI_Issend and MPI_Ibsend: non-blocking immediate variants of synchronous and buffered sends respectively. They also require completion calls.
MPI_Send and MPI_Recv: standard blocking send and receive routines. MPI_Send does not guarantee immediate return until the library can safely reuse the send buffer (it may block until the message is copied or matched), and MPI_Recv blocks until the message is received.
MPI_Ssend and MPI_Bsend: blocking synchronous and buffered send variants. MPI_Ssend blocks until the matching receive starts; MPI_Bsend blocks until the message is copied into the provided buffer.
Tip: To overlap communication and computation, use the non-blocking variants (those starting with 'I') and then complete them with MPI_Wait, MPI_Waitall, MPI_Test, or similar functions.