How big was the buffer that the program specified in the receive call? How big was the message that was sent?The master node can receive message ( the same size) from 50 worker nodes.But, it cannot receive message from 51 nodes. It caused "truncate error".
It's at least the message header (communicator, tag, etc.) so that the receiver can figure out if this is the expected message or not. In practice, there is probably also some data in there as well. The amount of that portion depends on the MPI implementation and, in practice, the interconnect the message traveled over, MPI-implementation-dependent environment variables set by the user, etc. E.g., with OMPI over shared memory by default it's about 4Kbytes (if I remember correctly).
I used the same buffer to get the message in 50 node case.
About ""rendezvous" protocol", what is the meaning of "the sender sends a short portion "?What is the "short portion", is it a small mart of the message of the sender ?
Right. MPI actually allows you to force such synchronization with MPI_Ssend, but typically MPI implementations use it automatically for "plain" long sends as well even if the user didn't not use MPI_Ssend.This "rendezvous" protocol" can work automatically in background without programmerindicates in his program ?
Right.The "acknowledgement " can be generated by the receiver only when thecorresponding mpi_irecv is posted by the receiver ?