[net.physics] Number-crunching

TERRY%PAGES.GATNET.MFENET@LLL-MFE.ARPA (11/06/85)

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