(j3.2006) (SC22WG5.3732) Nick's MPI non-blocking proposal
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
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
> 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