[MPI3 Fortran] [Fwd: Library-based ASYNCHRONOUS I/O and SYNC MEMORY]

Dan Nagle dannagle at verizon.net
Sat Sep 6 07:02:00 CDT 2008


Hello,

On Sep 6, 2008, at 6:40 AM, Jeff Squyres wrote:

> FWIW, my $0.02 is that it would be great if Fortran allowed  
> temporary aliases of buffers.  It could be clearly marked where  
> aliases begin and end.


How does the compiler know that one library routine
is the start of an asynchronous region for one name,
or sub-part of one name, and another routine marks the end?
As far as the compiler is concerned, there's nothing
special about the names of the library routines.

At the expense of some simplification,

call start_it( a, i)
...
call end_it( i)

and what is sought is a way to indicate that calling
start_it() marks 'a' as asynchronous until end_it()
is called.  But 'a' doesn't appear as an argument to end_it() !
There can be several 'a's and 'i's in flight at one time.

>  It would also be great if these aliases could be on a per-buffer  
> basis -- an all-or-nothing approach like SYNC MEM is good, but per- 
> buffer granularity would be better.

I suspect that some attribute for dummy arguments
expressed in an interface is the way to go, rather than
attributes applied to an entire scoping unit.  Perhaps
we must place 'a' on the call to end_it() somehow.

>  I don't need to touch any compiler/RTL data -- I just want the  
> compiler/runtime/whatever to let me have the user's buffer "in the  
> background" for a while.

We agree on the goal.
How do we get there?

-- 
Cheers!

Dan Nagle







More information about the mpiwg-fortran mailing list