Pavan Balaji wrote on Mon, 20 May 2013 at 06:57:42
And what about the non-deterministic effects that I called out in the email back in 2011 -- are those allowed, and if so, do we need to say that they're non-deterministic? ...and so on.-
Right, we did talk about the non-determinism on this email thread before you joined in, but we concluded that there's only one sensible way. Of course, that should be clarified in the standard. But it's not a major change in implementations, I think.
One thing we didn't discuss yet is whether the callbacks are called during MPI_Finalize, for attributes assigned to built-in communicators and/or types, and what operations are allowed therein. This makes it that much more interesting to do non-blocking I/O from the callback, since technically the application has called MPI_Finalize. However, if we go with the "as if MPI_*_DELETE_ATTR was called before the call, then anything should be valid, and we should have an advice to users regarding Finalize. Boy, did this got messy quickly... -Fab