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