(j3.2006) (SC22WG5.3923) [MPI3 Fortran] (SC22WG5.3917) (SC22WG5.3909) [ukfortran] [MPI3 Fortran] MPI non-blocking transfers

Aleksandar Donev donev1
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!

Aleks



More information about the J3 mailing list