From: ercolessi@uimrl3.mrl.uiuc.edu (furio ercolessi)
Subject: Re: Indigo R4k/IBM 6k comparison
Reply-To: ercolessi@uimrl3.mrl.uiuc.edu (furio ercolessi)
Organization: MRL - UIUC
Date: Thu, 7 Jan 1993 01:28:06 GMT

In article <8378@news.duke.edu>, rla@canctr.mc.duke.edu writes:
|>Greetings.  We are considering a purchase of a set of 4 workstations to be
|>linked together.  Objectives are mainly processing (number-crunching) power
|>plus the ability to run the GCG DNA sequence analysis suite of programs.
|>The two remaining candidates are SGI (R4000-based) vs. IBM RS6000s.
|>
|>Anyone with experience on both platforms, including service and reliability
|>and UNIX performance, please let me know your thoughts.  Overall system
|>speed is a major consideration.

I can perhaps say something on number-crunching, since we have run a
few benchmarks in Trieste.  We do heavy computational physics there.
*The results are very strongly application dependent*, much more than
we expected.

We have found that the IBMs have a very good performance in linear
algebra calculations, particularly with big-sized arrays.  For example,
the 560 processor scores 84 Mflops in Linpack 1000x1000, which is
indeed impressive.  HP and SGI are far behind, typically crawling around 
20 Mflops on this benchmark [these data can be obtained as a PostScript
file by sending a mail to netlib@ornl.gov, containing the message
'send performance from benchmark'].  The case of DEC Alpha is
a bit mysterious because it is reported to be 80 MFlops for the
3000-500 machine, but we could get only 11. In the other cases
we were usually able to reproduce the table results.
Moreover, the performance increases in the IBM when going from
100x100 to 1000x1000, while it typically decreases with the other 
processors.

But on a classical molecular dynamics benchmark, the results are
opposite!   {DEC,HP,SGI} are almost twice faster than the IBM
offering in the same price range.

So we buy them all, for the desperation of our system manager,
and run big electronic structure codes, doing mostly linear algebra
or anyway very straightforward operations on huge loops, 
on IBMs with plenty of memory and no graphics display, and classical 
molecular dynamics, Monte Carlo and similar stuff on 32MB equipped 
(or sometimes even 16MB) workstations of other manufacturers,
which are IMHO also nicer for interactive work. 

Apparently, one of the key issues is the cache architecture:
size and bandwidth.  The first code described above, doing linear
algebra calculations, is very local in memory and uses a large
and fast cache memory at its best.  In contrast, the second code
is highly non-local (it has lots of indirect addressing and jumps
in memory like hell), and probably gives a poor Megaflops rating
in all cases.  Clearly, different design decisions have been made
by the various teams.  HP and SGI seem to behave quite similarly.

Another issue giving a good Linpack rating for the IBM is the
multiply-and-add instruction, where these two operations are
done in a single machine cycle.  This is clearly exploited, since
the 84 MFlops result is obtained on a 50 MHz machine.
IBM put some carefully coded BLAS routine in their ESSL
library.  Maybe that HP and SGI also have such an instruction,
but it is not exploited by the compilers/libraries yet.

DISCLAIMER: I am a poor application programmer trying to
understand these wonderful machines "on the field", and make
the best choices in the market.  I really do not know what is behind the 
scenes ... Any insight and further input is appreciated!
And, of course, number crunching is not all, as anybody struggling
to land with the 747 on that damned short runway knows ... :-)   

--
Furio Ercolessi
Materials Research Laboratory           |   Intl School for Advanced Studies
Univ. of Illinois at Urbana-Champaign   |   Trieste, Italy
furio@uiuc.edu                          |   furio@sissa.it