Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site ames.UUCP
Path: utzoo!linus!philabs!cmcl2!harvard!seismo!lll-crg!dual!ames!eugene
From: eugene@ames.UUCP (Eugene Miya)
Newsgroups: net.physics
Subject: Re: Languages for number crunching
Message-ID: <1241@ames.UUCP>
Date: Tue, 5-Nov-85 03:07:27 EST
Article-I.D.: ames.1241
Posted: Tue Nov  5 03:07:27 1985
Date-Received: Fri, 8-Nov-85 05:41:10 EST
References: <722@sri-arpa.ARPA>
Organization: NASA-Ames Research Center, Mtn. View, CA
Lines: 54

> From:  Paul Schauble 
> 
> FORTRAN used to be the language of choice for number crunching. Is it
> still? What else is used? I'm very curious what people consider the
> relative merits of the various languages. 

It is my understanding that F-66 style programs constitute 99% of all
Cray codes.  F-77 compiler has not been released yet. The other 1% are
Pascal and C.  Cray Pascal does now vectorize, and it is important because
the new F-77 based compiler is written in Pascal to make it more maintainable.
No one to my knowledge have written an APL, but with Unix running on
a Cray this become easier to try.  Relative merits? Try dusty decks.
Also dusty brains (mine included).  This is not much else because of dust.
It takes a lot to move LISP or other "esoterica" and my typical user
(read physicist, ME, EE) does not use these languages nor do they wish to
maintain them.  I suspect this will change as interest in AI grows.
PSL was ported to the Cray-1 and XLISP was ported to the Cray-2 [neither
are products].

> For the vector machines, is the language extended, or are the compilers
> smart enough to recognize things that the vector instructions are good
> for? What kinds of extensions?
> 
>                               Thanks,
>                               Paul

Extensions come principally in the form of compiler directives to
ignore vector dependences.  These machines are quite fast scalar
machines, too.  The new thing to watch for will be used defined
"multi-tasking" (Cray terminology).  Automatic decomposition won't come
fast enough, so it will be placed in the users hands.  Fortran 99? Maybe.
By the way at this time on Crays, only the inner most nested
loops vectorize.  The Convex will go more, I did get it to do this for
me when I ran on one, so will the Amdahl-1200 [FAI VP-200].

Recently, I visited a group where I began work in the real world.  We had
FPS-120B serial #4.  My old friends rationalized that programming vector
machines was too hard.  This is far from true.  In some senses, vector
programming is a bit too easy.  We are overloading the function of the
DO-loop.  It's not just a DO-loop anymore.  If you don't vectorize, you still
get a fast loop, but otherwise, you end up with a program of interconnected
vectorized DO-loop "nodules."  The compiler does help you by telling you
what it did and did not vectorize.

Japanese vectorizing software is apparently like nothing in this country.
It not only tells you what to vectorize, but suggestions more global
optimizations interactively.  It's very impressive stuff, but you can
send mail to fai [Fujitsu] on the net.

From the Rock of Ages Home for Retired Hackers:
--eugene miya
  NASA Ames Research Center
  {hplabs,ihnp4,dual,hao,decwrl,allegra}!ames!aurora!eugene
  emiya@ames-vmsb