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. Thanks, Barry > george. >