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