From: | Brooks Moses <bmoses-nospam@cits1.stanford.edu> |
Newsgroups: | comp.compilers |
Date: | Thu, 09 Aug 2007 19:42:27 -0700 |
Organization: | Stanford University |
References: | 07-08-016 07-08-021 |
Keywords: | parallel, Fortran, design |
Posted-Date: | 09 Aug 2007 22:51:15 EDT |
SM Ryan wrote:
> I lost track of Fortran before 90 was standarised, but the array
> notation of 8X was seriously broken: while theoretically letting
> programmers express themselves at a high level, it forced serial
> semantics whether the programmer intended that or no; thus the
> notation could not be vectorised or parallelised any easier than if
> explicit do loops had been used.
The problem with the actual standardized Fortran 90 semantics is
arguably the opposite: it forces parallel semantics whether the
programmer intended that or no. For example,
a(x) = s * a(y)
(where x and y are vectors) allows x to contain some of the same
elements as y, and requires results that are consistent with calculating
the entire vector of right-hand sides prior to doing any assignments.
This tends, in cases where the scalarizer isn't sufficiently clever (or
sufficiently well-informed), to result in the creation of unnecessary
array temporaries -- which can be a substantial performance hit in cases
where those temporaries are large.
- Brooks
--
The "bmoses-nospam" address is valid; no unmunging needed.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.