On Mon Feb 4, 2008 14:23:13... Sacerdoti, Federico wrote
> To keep this out of the weeds, I have attached a program called "bug3"
> that illustrates this problem on openmpi 1.2.5 using the openib BTL. In
> bug3 process with rank 0 uses all available memory buffering
> "unexpected" messages from its neighbors.
>
> Bug3 is a test-case derived from a real, scalable application (desmond
> for molecular dynamics) that several experienced MPI developers have
> worked on. Note the MPI_Send calls of processes N>0 are *blocking*; the
> openmpi silently sends them in the background and overwhelms process 0
> due to lack of flow control.
This looks like an N->1 communication pattern to me. This is the definition
not scalable.
>
> It may not be hard to change desmond to work around openmpi's small
> message semantics, but a programmer should reasonably be allowed to
> think a blocking send will block if the receiver cannot handle it yet.
It's actually pretty easy -- change MPI_Send() to MPI_Ssend().
It sounds like you may be confused by what the term "blocking" means in MPI...
-Ron
|