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

Bill Long longb
Thu Dec 4 16:38:32 EST 2008

Aleksandar Donev wrote:
> Hello,
> 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
>> 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?).
> Best,
> Aleks
> _______________________________________________
> J3 mailing list
> J3 at j3-fortran.org
> http://j3-fortran.org/mailman/listinfo/j3

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 mailing list