(j3.2006) (SC22WG5.3732) Nick's MPI non-blocking proposal

Aleksandar Donev donev1
Wed Dec 3 23:50:33 EST 2008


I am going to go out of line and actually give a positive review of 
Nick's proposal :-) I like the basic design, which I have advocated as 
well (asynchronous attribute for non-blocking two-sided transfer, and 
volatile for one-sided target windows). It is similar to my own proposal 
except that it does not use SYNC MEMORY but proposes two new intrinsics 
(this sounds like a good idea).

> SET_PENDING (ID, INPUT, A1, [A2, ...])
> SET_PENDING shall be called on an affector before the mechanism
> external to Fortran initiates the asynchronous I/O.
OK from Fortran.

> If that is too horrible, and I think that it is, then the C interface
> would need to specify the number of arguments that make up the
> affector.
Can you please explain why it is needed to call this from C, and what 
that would mean in terms of implementation? I see how it tells the 
Fortran compiler that asynch I/O starts/ends so it knows when to flush 
buffers/registers/etc., but what would it mean to C??? An example would 
be great.

>  A Fortran processor need not do anything other
> than define ID to be a suitable value in SET_PENDING if it does
> not need that information.
I missed one thing: What is a "suitable value", i.e., are there 
constraints on the values (e.g., they have to be distinct from other 
pending states or what?).


More information about the J3 mailing list