On Thu, Apr 24, 2008 at 11:17:30AM -0400, George Bosilca wrote:
> Well, blocking or not blocking this is the question !!! Unfortunately, it's
> more complex than this thread seems to indicate. It's not that we didn't
> want to implement it in Open MPI, it's that at one point we had to make a
> choice ... and we decided to always go for performance first.
Of course -- that's the correct choice.
> However, there were some experimentations to go in blocking more at least
> when only TCP was used. Unfortunately, this break some other things in Open
> MPI, because of our progression model. We are component based and these
> components are allowed to register periodically called callbacks ... And
> here periodically means as often as possible. There are at least 2
> components that use this mechanism for their own progression: romio
> (mca/io/romio) and one-sided communications (mca/osc/*). Switching in
> blocking mode will break these 2 components completely. This was the reason
> why we're not blocking when only TCP is used.
Ok, good to know.
> Anyway, there is a solution. We have to move from a poll base progress for
> these components to an event base progress. There were some discussions,
> and if I remember well ... everybody's waiting for one of my patches :) A
> patch that allow a component to add a completion callback to MPI requests
> ... I don't have a clear deadline for this, and unfortunately I'm a little
> busy right now ... but I'll work on it asap.
Ok, thanks for that. I doubt I'll be able to come up with a patch
before you do, but at least you've told me where to start looking.