On Jan 4, 2010, at 2:02 PM, Eugene Loh wrote:
> Maybe the experts on this list can comment on what *should* be happening inside OMPI.
> Meanwhile, you should probably avoid MPI_Sendrecv_replace if you care about performance. The function is mostly a convenience function and if you care about performance you'd be safest, if you're going to run with different MPIs, to use MPI_Sendrecv instead. That means you need a send buffer and a receive buffer. A little more hassle, perhaps, but it means you have better control over the performance characteristics. E.g., you won't have all those extra allocs/frees, which is what you almost surely have with most MPI implementations.
It's a tough call about how to make MPI_Sendrecv_replace "better" -- because there's several different definitions of "better" that might fit here...