Fwd: Re: [Beowulf] Why is communication so expensive for very small messages?

Jonathan Boyle j.boyle at manchester.ac.uk
Thu Apr 26 09:43:38 PDT 2007


Thanks for your advice.

Pingponging messages back and forth certainly seems to fix the problem, as 
does inserting an MPI_Barrier(MPI_COMM_WORLD) after every send.

What's a window nad ack message and where would I find out more about them?


----------  Forwarded Message  ----------

Subject: Re: [Beowulf] Why is communication so expensive for very small 
messages?
Date: Tue, 24 Apr 2007 15:54:42 -0400
From: Patrick Geoffray <patrick at myri.com>
To: Jonathan Boyle <j.boyle at manchester.ac.uk>
Cc: beowulf at beowulf.org

Jonathan Boyle wrote:
> For 2 processor blocking calls, mpptest indicates a latency of about 30
> microseconds.
>
> However when I measure communication times in my own program using a loop
> as follows....

If you don't want flow control problems, you need to do a pingpong (each
node send and recv alternatively) or do explicit flow control using a
window nad ack message. MPI_Send() can return as soon as the data is
buffered (ie copied somewhere on the send side), and that is much faster
than the network itself, so the somewhere will fill up eventually.

Patrick

-------------------------------------------------------





More information about the Beowulf mailing list