LAM/MPI logo

LAM/MPI General User's Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: Mihai Basa (mbasa_at_[hidden])
Date: 2003-08-12 11:35:00


> Hi,
> I am testing performance on a parallel program written in C++ with MPI.
> I compared the performance of the same program using blocking and
> nonblocking communications (MPI_Send/MPI_Recv on one side, and
> MPI_Isend/MPI_Irecv on the other).
> The strange point is that, if the size of the transmitted/received
> buffers is small, the nonblocking approach works better, but whit bigger
> sizes, the same approach works much worse than the blocking one.
> The bigger the buffer size, the worse the performance difference between
> blocking and nonblocking. ¿Does anybody have any experience with
> nonblocking communications in MPI?

Hi,

What you're seeing is really strange. I've been playing a bit with
blocking/nonb. comparisons lately and the results have been like this:
blocking comm time increases with buffer size in that (well-known?) square-
root fashion right from the smallest messages. Nonblocking times stay almost
constant (increase very slowly and unevenly) until the buffer reaches a
certain size, after which it also starts on a square-root-type increase of
time.
Are you sure you've implemented nonblocking communications right? They can be
a bit tricky. Could you show us some short code?

Mihai