(j3.2006) (SC22WG5.3743) Nick's MPI non-blocking proposal
Thu Dec 4 16:38:32 EST 2008
Aleksandar Donev wrote:
> I am going to go out of line and actually give a positive review of
> Nick's proposal :-) I like the basic design,
Actually, I find it massively confusing. It seems to be focused on I/O,
which is only a small corner of MPI. The basic send / receive routines
have nothing to do with I/O, and yet those are the ones we should be
concerned with. The issue is argument passing semantics, not I/O. In
particular, we need to avoid copy-in and copy-out for specific arguments.
It would seem like a simple attribute for the "buffer" dummy argument,
perhaps "STATIC", would be much simpler, and easier to understand. The
idea of a subroutine call effectively setting attributes for its
arguments in the caller's scope is highly unusual. And it is unsafe in
that it is subject to circumvention by EXTERNAL statements.
> 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
> 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?).
> J3 mailing list
> J3 at j3-fortran.org
Bill Long longb at cray.com
Fortran Technical Support & voice: 651-605-9024
Bioinformatics Software Development fax: 651-605-9142
Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120
More information about the J3