(j3.2006) (SC22WG5.3923) [MPI3 Fortran] (SC22WG5.3917) (SC22WG5.3909) [ukfortran] [MPI3 Fortran] MPI non-blocking transfers
Fri Jan 23 23:29:04 EST 2009
Bill Long wrote:
> The real question is whether "keep rewriting your code until the
> compiler accepts it" is a "solution" to the MPI group. Realistically, I
> think it is the where we'll end up.
As Nick said, no one can fix broken code. If code passes a non-contigous
array to an MPI routine that cannot handle that, and copy happens,
nothing can fix that but changes to either the code or making a run-time
error in an MPI wrapper (since the routine cannot handle it---and a
compile-time error is much better than a runtime one). Likely the code
would never work correctly to begin with, so it does not sound like a
good reason to change MPI to me.
Remember that ANY of the actually technically-feasible solutions
includes adding some attribute on the buffer array. These are not there
in existing codes. The codes will need to be changed. Bill has mentioned
some sort of implicit acquisition of said attribute but that still
smells fishy to me.
The only actual problem is that existing constraints for asynchronous,
for a good reason, require that the actual be "simply contiguous". This
is more restrictive than "contiguous". There may be codes that rely on
"oh it will work cause it is contiguous", but to make it simply
contiguous that may require code changes (e.g., adding the CONTIGUOUS
attribute here and there). All of these are nontrivial especially for
people that do not really understand the meaning of these attributes.
> I just want to make sure the MPI
> group fully understands what they are getting.
Well, no one will if you subject them to this ongoing circular
discussion which even the discussants can really follow!
More information about the J3