(j3.2006) (SC22WG5.4039) [ukfortran] LOCK/UNLOCK question

Bill Long longb
Thu Jun 25 09:18:25 EDT 2009



N.M. Maclaren wrote:

> 
> It is the problem of putting SYNC MEMORY there that makes me feel that
> this can't be done - as I have said many times, users WILL use C code,
> POSIX and I/O for synchronisation, in conjunction with that.  And those
> bring in all of the problems being referred to.


We have provided enough capabilities that the use of C code, POSIX, and 
I/O synchronization should no longer be necessary.  This seems like an 
excellent topic for a section of a textbook on Fortran 2008.


  Also, I'm convinced that users who can get by with just
>> SYNC ALL and SYNC IMAGES will never venture into the low-level stuff. 
>> Why would they?
> 
> With all respect, Bill, I have some doubts that your experience is
> representative.  I searched Cray's documentation, and that use of
> VOLATILE was not documented until December 2008!  See, for example:
> 
>     http://docs.cray.com/books/S-3901-60
>     http://docs.cray.com/books/S-3901-70
> 
> Any experience before 2009 must necessarily have been in-house and
> selected users of pre-release software only - and I would expect the
> vast majority of those people to be classifiable as 'experts'.

We completely revamped our documentation with the 6.0 release (the 
S-3901-60 manual) which we release in September, 2007.  The older 
manuals might be no longer online.  However, I can assure you that we 
(like many other vendors) have supported VOLATILE for a very long time, 
and coarrays in compilers released to customers since 1998.  What you 
claim "must necessarily have been" is not correct.


> 
> Secondly, there is essentially no experience with coarrays outside Cray,
> so you can have little to no experience with code written for Cray
> coarrays being ported to other implementations. 

This is valid observation. It is often the case that new features in the 
language have limited prior implementation experience. So far we've 
implemented coarrays on four different network interconnects (excluding 
the never-released SGI Origin version), are mostly done with a fifth due 
for release next year, and I'm mostly focused on a 6th that's in design 
stage. No disasters so far.


  And, as I said above,
> THAT is when most experts will realise that there 'working' code was
> actually buggy, but the bug had not previously shown up.

Or that the new implementation is buggy, which is not that uncommon with 
new implementations of any non-trivial feature.  The initial f90 
implementations were not optimal either.  But vendors eventually got the 
kinks out and I think the overall result has been success.  I expect a 
similar trajectory for coarrays.  Andy seems to be off to a good start 
with g95, which is very encouraging.



>> But their work was outside Fortran - before coarrays there were no 
>> Fortran facilities at all.  LOCK was added precisely because there were 
>> situations where the previous set of tools was inadequate.
> 
> That attitude is appallingly reminiscent of the way that the 1970s and
> 1980s 'computer scientists' said that none of the previous mainframe,
> Fortran, Algol, Cobol and other experience was relevant.  And so we
> ended up with C-like languages, Unix and Windows 3.  

Thanks for the warning about "computer scientists". :)

We still have Fortran and Cobol. I think C was a big improvement over 
assembly language, which it was intended to replace. It also had a 
brilliant marketing strategy - provide free compilers to students. (The 
Java crowd was smart enough to realize this, with similar results.) So 
far, I've been mostly successful in avoiding Windows.

I started on mainframes and later migrated to Unix. I would never want 
to go back.  The same era also gave rise to VMS, which was (in my 
opinion) even better. Some of the VMS ideas are still being migrated 
into Unix-based systems. Unfortunately, DEC management thought that the 
elegance of their software was so compelling that the relatively weak 
performance of the VAX processors did not matter. That turned out to be 
commercially fatal, and a lesson imprinted on other vendors since.


> 
> Fortran, of all languages, should not make that mistake, especially
> not through intellectual arrogance.
> 

Agreed. Especially the lesson that performance is what sells. If Fortran 
did not offer better performance compared to more fashionable languages, 
its survival would be seriously endangered. Fortran 2003 has been 
roundly criticized for a swing too far in the direction of abstraction 
and theory. We need to keep up with "modern practices" to some extent, 
but cannot ignore the basis for continued acceptance.

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