(j3.2006) Comment on Fortran WG5 ballot N1846
Van Snyder
Van.Snyder
Wed Apr 20 17:17:15 UTC 2011
On Wed, 2011-04-20 at 08:14 -0700, Dan Nagle wrote:
> Hello,
>
> On Apr 20, 2011, at 02:29 , Van Snyder wrote:
>
> > This is all true, but is irrelevant to the fact that in the program
> >
> > asynchronous X
> > external A, B
> > call A ( X )
> > call B
> > print *, X
> > end
> >
> > the processor can't know if or how X is asynchronous.
>
> The processor doesn't know where the asynchronous i/o happens,
> nor where the wait happens. So what. The processor does know
> the limits of what asynchronous means, provided asynchronous
> is restricted to f08 asynchronous i/o.
>
> > If it provides asynchronous I/O, it has to respect the ASYNCHRONOUS
> attribute, no matter whether or how the "asynchronous" happens in A.
>
> Note the hypothesis: "If it provides asynchronous I/O".
>
> Knowing how asynchronous happens, including if it happens at all,
> is the point. The processor can do the minimum is knows it needs to
> do if the asynchronous attribute applies only to f08 asynchronous i/o.
>
> For example, a processor could generate two code paths for each basic
> optimization block, and use a run-time test of the pending/done
> indicator to select which block to execute, if asynchronous is
> restricted to its own f08 standard asynchronous i/o. The processor
> can't do that if asynchronous is enlarged to include anything anyone
> considers to be asynchronous "communications".
I don't anticipate that a processor will have a global "pending" flag
for every variable with the ASYNCHRONOUS attribute.
> If the asynchronous attribute applies further, to arbitrary
> communications, the processor must make worst-case assumptions every
> time.
I anticipate processors will always make the worst-case assumptions
concerning asynchronous objects because doing anything else would almost
certainly be a net loss.
> >> The red herring is how many levels of call are involved.
>
More information about the J3
mailing list