(j3.2006) (SC22WG5.3647) [ukfortran] A comment on John Wallin's comments on Nick MacLaren's comments
Bill Long
longb
Fri Nov 7 12:30:56 EST 2008
Aleksandar Donev wrote:
> On Thursday 06 November 2008 15:39, N.M. Maclaren wrote:
>
>
>>> Deadlocks introduced by the implementation should be reported as bugs to
>>> the vendor.
>>>
>> Unless the standard makes it clear whether the programmer or implementor
>> is at fault, that is merely a waste of time.
>>
> I have been discussing these things with Nick in private for some time now, so
> let me say a few words to WG5 (since I won't be in Tokyo---I think arguing
> over e-mail is somewhat inefficient and wasteful).
>
> I agree with Nick that we should make a decision concerning "progress", and
> somehow anoint in the standard, even if we cannot say anything in
> standardese.
The first sentence of Note 8.31 is "The model upon which the
interpretation of a program is based is that there is a permanent memory
location for each coarray and the all images can access it." I don't
see any ambiguity here. It does not say that only some images can
access a coarray, or that the access is available only some of the
time. Perhaps we should change "access" to "reference or define" (an
early UK point) to make use of well defined terms here. But the key
words near the end of the sentence, ALL and CAN have unambiguous meanings.
The other issue related to progress is whether there is an expectation
that a SYNC MEMORY statement actually completes execution. Since SYNC
MEMORY is implicitly part of the other image control statements,
assuring that one works solves the global problem. We do already
allow, via the stat specifier, a way to deal with cases where the
statement in fact does fail - for example if there is a bad memory chip
storing affected data, the network is physically severed, or there is a
power failure on an affected image. In Note 8.40 we explicitly say
that the errors that cause a non-zero stat return are "processor
dependent". However, there is an implicit assumption that on a normally
functioning system, SYNC MEMORY would always complete with a zero
status. If we need to say that, I suppose it is OK. Although there are
a lot of other statements (READ and WRITE, for example) where we
implicitly assume that they do what the standard says they do without
explicitly saying so. Probably because there is a blanket statement on
page 2 that requires a standard-conforming processor to execute
statements in the way the standard specifies.
Cheers,
Bill
--
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