(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.

Cheers,
Bill



> 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