Reputation: 2236
I was following a tutorial on http://mpitutorial.com/tutorials/point-to-point-communication-application-random-walk/ and there is a sentence that says " If the sends eventually can’t be buffered by the network, they will block until a matching receive is posted."
When is MPI_SEND()
not able to be buffered by a network?
I would guess this question has been asked before but I honestly don't know what keywords to search for here.
Upvotes: 1
Views: 46
Reputation: 8395
Long story short, it depends.
Longer story, it depends on your MPI library, the message size, the interconnect being used, how many messages have been buffered before, the tuning options you are using, and other factors.
Keep it mind a program that assumes MPI_Send()
will return if no matching receive has been posted is incorrect with respect to the MPI standard.
Another way to put it is a correct MPI program will not deadlock if you replace all MPI_Send()
with MPI_Ssend()
.
Upvotes: 1