[comp.lang.c] Archimedes 310 + Acorn C benchmark

peter@yunexus.UUCP (Peter Roosen-Runge) (07/14/88)

We have had the opportunity to explore briefly the Archimedes 310,
courtesy of Olivetti Canada, and can report a few preliminary results.
     
The Archimedes 310 uses the ARM (RISC) processor and has 1 Meg of memory.
A C compiler identified internally as "Norcroft ARM C" is supplied
by the vendor Acorn.
     
The current retail price in Canada  for this configuration (1 800K drive,
monitor excluded, C included) is $3080 (Can.).
     
We compiled the Sieve benchmark from Byte, June 1988 under this C compiler
replacing calls to the Small-C timing functions (gtime() and calctime())
with calls to the standard clock(), which in this case returns a 4-byte
clock value in centiseconds (initialized to 0 when the program begins
execution.)
     
The result for 100 iterations of sieving through the odd integers from 3
to 16383 is 5.42 seconds.*  Comparing this with the June 1988 Byte benchmarks
for the sieve:
                                 secs.          ratio   price/performance**
Acorn Archimedes + Acorn C       5.42           1       1
Compaq 368/20 + Small-C         23.2            4.3     12.3
Mac II + 68000 Small-C          40.2            7.4     11
PC/AT + Small-C                 73.7            13.6    7.1
Mac SE + 68000 Small-C         170.2            31.4    34.5
Mac Plus + 68000 Small-C       200.1            36.9    23.2
     
Acorn itself publishes some sieve benchmarks based on interpreted Basic
(for a single iteration of the sieve over 3500 odd integers) which shows
a somewhat smaller relative speed for the Archimedes configuration than
the compiled benchmarks do.  The ratios are
     
Acorn Archimedes + BBC Basic    1
Compaq 386 + Compaq Basic       2.5
PC/AT + GW Basic                7.3
     
It is likely that the reduction in the Basic ratios to about 1/2 of the
C ratios for the Compaq and PC/AT is due to a greater difference in
quality between the Acorn C compiler vs. Byte's Small-C than there is among the
three Basic interpreters.
     
*To show the difficulties of creating reliable benchmarks, we note that we can
increase the execution time of the sieve loop by 6% (.35 seconds/100
iterations) by merely not linking with the Arthur runtime library, (after
substituting the standard getchar() for Arthur's get()), even though the
getchar function is never called within the code being timed!
     
** The price/performance ratios should not be taken too exactly since the Mac
prices do not include federal taxes, while the other prices are list; as well
the PC/AT price is for an 8 MHz clone.  We decided to show the ratios anyway
as a matter of principle, because we believe that benchmarks should always be
interpreted in the context of configuration costs. The ratios computed by
taking the Archimedes as 1 and using estimated minimal Canadian prices for
minimal configurations as follows (assuming no cost for the Small-C compiler).
     
     
Acorn Archimedes + Acorn C      $3080
Compaq 368/20                    8795
Mac II                           4585
PC/AT   (clone)                  1600
Mac SE                           3385
Mac Plus                         1938
     
     
Comments, criticisms, and additional data would be very welcome.
============================================================================
     
P. H. Roosen-Runge, Department of Computer Science, York University
Toronto M3J 1P3, Ontario, CANADA
     
. . utzoo!nexus!peter
    ROOSEN@YUSOL.BITNET