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

Jonathan Boyle j.boyle at manchester.ac.uk
Tue Apr 24 08:54:49 PDT 2007


I apologise if this is a naive question, but I'm new to this world of 
beowulfs.

I'm using C++/mpi, to get a feel for communication costs I ran tests using 
mpptest and my own programs.

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....
   
MPI_Barrier(MPI_COMM_WORLD);
start = MPI_Wtime();
for (unsigned t=1; t<=5000; t++)
{
 if (my_rank==0)
 {
  MPI_Send(data, size, MPI_INT, 1, tag, MPI_COMM_WORLD);
 }
 else
 {
  MPI_Recv(data, size, MPI_INT, 0, tag, MPI_COMM_WORLD, &status);
 }
}
end = MPI_Wtime();

for size>=4, I get a latency of about 30 microseconds as expected, however for 
size<4, communication costs increase massively, and latency now appears to be 
1ms!

Firstly, I assume this isn't normal?

Secondly, can anyone suggest what's going on, or where I can go for more 
information.

Many thanks.

We're using mpich.

Processors are Intel(R) Xeon(TM) CPU 3.60GHz.

Interconnects are Dell PowerConnect 5324 24-port gigabit switches.





More information about the Beowulf mailing list