Eugene Loh wrote:
I'm no expert, but I think it's something like this:

1) If the messages are short, they're sent over to the receiver. If the receiver does not expect them (no MPI_Irecv posted), it buffers them up.

2) If the messages are long, only a little bit is sent over to the receiver. The receiver will take in that little bit, but until an MPI_Irecv is posted it will not signal the sender that any more can be sent.

Are these messages being sent over TCP between nodes?  How long are they?

Each message is 2500 bytes, as I mentioned previously. In fact, each message is composed of one hundred 25-byte operations that have been queued up at the application level and sent with a single MPI_Send. It would depend on the nature of the application of course, but is there any reason to believe that 100 individual MPI_Send would be any faster? Or is there a better way to queue up messages for a batch transmission?

Cheers,
Shaun

Reply via email to