(j3.2006) an alternative to Aleks' asynchronous proposal

Aleksandar Donev donev1
Thu Jun 19 18:00:02 EDT 2008

On Thursday 19 June 2008 14:37, Dick Hendrickson wrote:

> The persistent subroutine
> is allowed to access, define, reference, undefined,
> or anything else to arguments that it maintains
> (or acquires from another persistent subroutine)
> an association to.
The persistent subroutine returned and is no longer executing. So it cannot do 
anything. Allowing variables to be modifed externally (asynchronously) at 
will, without a special attribute, is IMO a big mistake likely to lead to 
conflicts between compilers (who think they are optimizing), and users (who 
think they know what the compiler is optimizing).

> It is entirely the programmers responsibility to
> correctly use variables passed as arguments to
> persistent routines.
And it is our responsibility to tell the programmer what is correct, and what 
is not. I tried to do exactly that. And "generally speaking" does not cut 
muster. This is a programming language standard, not a tutorial or a book one 
buys on amazon.com.

> However, Aleks seem to be trying to shoehorn
> MPI into some sort of asynchronous I/O and
> coarray syncmemory model.
I cannot understand why and what I am shoehorning. I am giving an extended 
meaning to the ASYNCHRONOUS attribute, and I am doing nothing at all to or 
with async (Fortran) I/O. MPI non-blocking communication is a form of 
asynchronous data transfer, so using the ASYNC attribute seems more than 
appropriate to me. The so-called "coarray sync memory model", if you look at 
it more closely, has less to do with coarrays and more to do with 
optimizations and preventing code motion for variables whose values change 
due to actions unknown (or too complex to analyze) to the compiler. Exactly 
what happens here. That is, of course, IMO and you are welcome to disagree.


More information about the J3 mailing list