[net.unix] Convex C-1 computer? --VECTORIZATION

karl@mtu.UUCP (Karl Ottenstein) (05/04/85)

> Vectorization only works on certain "well structured, regular" loops.
> This is nothing new, the first FORTRAN programs did not vectorize well
> either, so you will either restructure to gain performance benefits of
> vector C (potentially non-portable) or settle for scalar performance.
> That is how most supercomputer codes are structured.  It depends how much
> work you are willing to put into it.

The issue is not that old FORTRAN programs did not vectorize well, but
rather that old compilers did not perform sufficient analysis to produce
good code.  The work of Kuck (et al) at Illinois and Kennedy (et al) at
Rice has produced very powerful vectorizing techniques which are incorporated
in several commercial translators, including [I am led to believe] the
Convex compiler.

It is true that Cray manuals specified that loops should look certain ways
to be vectorized, but that was simply due to their stupid compilers at the
time.
-- 

		Karl Ottenstein
		Michigan Technological University
		uucp: {lanl, ihnp4, glacier}!mtu!karl
		arpa/csnet:  karl%mtu@csnet-relay

eugene@ames.UUCP (Eugene Miya) (05/10/85)

> > Vectorization only works on certain "well structured, regular" loops.
> The issue is not that old FORTRAN programs did not vectorize well, but
> rather that old compilers did not perform sufficient analysis to produce
> good code.
> 
> 		Karl Ottenstein
> 		Michigan Technological University

Pilot light:
I have used several 'smart' tools.  This includes software from Cray,
CDC, Pacific Sierra, and soon Fujitsu.  It has been my experience that
even the smart tools give up easily.  Perhaps, you have had different
experiences.

Not a flame:
Nobody sent any test program to me.  I ran two test programs (I prefer
to not call them benchmarks) which characterized the Convex architecture.

Test 1: was a test to see how smart the vectorizer restructured doubly
nested and greater depth levels of DO-loops.  The test involves dimensioning
a reasonably large 2-D square array.  Then using sub portions of the
array in long slender geometries.  The loops then hit the array in the long
direction (column-major) and in the slender (row-major) direction.
The restructuring took care of this (to a degree), there is some
behavior, I am not clear on (some cases where inefficient work is being done)
but I'm not yet certain why.

Test 2: Memory assignment using vector scatter-gather function.
This test initialized memory first in a scalar mode ( linear cost as
the size of an array increased). In vector mode, (first it showed that
it was a vector machine with a slight jump at 129 elements for
extra startup cost) the Convex handled the scatter gather function
reasonably well [Compared to the XMP/48 which I've also run the test on].

I've got other tests, but little time, now.  In summary, the Convex C-1
does not appear to be a bad machine all factors considered.  Now if the
compiler just just be moved over to a Cray.....

--eugene miya
  NASA Ames Research Center
  {hplabs,ihnp4,dual,hao,decwrl,allegra}!ames!aurora!eugene
  @ames-vmsb.ARPA:emiya@jup.DECNET