Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxt!houxm!whuxl!whuxlm!akgua!gatech!seismo!hao!hplabs!sri-unix!TERRY%PAGES.GATNET.MFENET@LLL-MFE.ARPA
From: TERRY%PAGES.GATNET.MFENET@LLL-MFE.ARPA
Newsgroups: net.physics
Subject: Number-crunching
Message-ID: <727@sri-arpa.ARPA>
Date: Tue, 5-Nov-85 19:09:00 EST
Article-I.D.: sri-arpa.727
Posted: Tue Nov  5 19:09:00 1985
Date-Received: Sun, 10-Nov-85 10:01:07 EST
Lines: 44



In response to Paul Schauble's query about vectorizing computations:

I don't know how deeply you want to delve into this; let me just answer
your questions directly.

FORTRAN is still the language of choice.  I am not aware of any imple-
mentations that extend the language for vectorizing - the compiler is
simply made smart enough to rearrange the calculations for efficient
vectorization (oops, I take that back - I know of one case where there
are compiler directives to say "be careful; don't try to vectorize here").

The impression I get (I am a systems programmer, not a scientific programmer)
is that some of the folks would LIKE to see other languages, but few if
any are available.  I know of some who are pushing for C and Pascal ...

Just as an additional aside - there is also a lot of interest these days
in PARALLEL processing; i. e., getting more than one CPU to work on the
problem at the same time.  Most implementations of this require a LOT of
intervention on the part of the programmer, and are easy to screw up.
Parallelizing (what a word!) requires extensions, in the form of subrou-
tine libraries and/or compiler directives.  There is at least one language,
called Occam, which was designed especially for parallel programming.

Usual disclaimer about expressing my own opinions here -------------------

Here at the San Diego Supercomputer Center, we are a week away from
acquiring a Cray X-MP/48.  This is a 4-CPU machine with vector capabilities,
and the FORTRAN compiler(s) do automagic vectorization.  Several of us arer
VERY interested in the parallel processing problem, and we will be working
on a couple of different approaches.  This will enable users to write code
to potentially use all 4 CPUs simultaneously, but do it EASILY, rather than
with lots of wailing and gnashing of teeth.

End disclaimer section ---------------------------------------------------

Anyway, vectorizing is much better understood than parallelizing, as far
as automatic compilation goes, and so that is pretty well handled without
a great deal of thought on the part of the programmer (though a good
programmer can help the compiler out a great deal).

Terry
San Diego Supercomputer Center