Tools: MPW
Advanced Search
Apple Developer Connection
Member Login Log In | Not a Member? Support

Double-precision WHETSTONE

Livermore edition

Units = millions of Whetstones per second

Power Macintosh 8500/180
LibraryMrC 3.0CW10mcc 3.0
mathlib 157 88 128
powermathlib 240 108 180
libmoto 250 110 186


Apple Network Server 700/150
MrC 3.0xlC 3.0
192 192

System:

Power Macintosh 8500/180 = PowerPC 604e 180MHz, 256K L2
Network Server 700/150 = PowerPC 604 150MHz, 1024K L2

Compilers:

CW10 = Metrowerks CodeWarrior 10 -opt full -w off
MrC = Apple MrC 3.0f1c8 -opt speed,unroll,unswitch -inline 5 -w off
MCC = Motorola MCC 3.0 -O4 -Atarg=604,gim=2,fcm=2,whole=1,inline=%all,inllev=5 -w off
xlC = IBM xlC 3.0 -O3 -qarch=ppc -qtune=604 -Q+sub1:sub2:sub3

Libraries:

mathlib = Apple MathLib 2.0.3
powermathlib = Apple PowerMathLib 3.0d1
libmoto = Motorola libmoto provided with MotoTools 3.0

/* ========================= DWHET.C ===================================
*
*  Double precision Whetstone program.
*
*  Measures C compiler and CPU and FPU performance in
*  Whetstone-instructions per second (times about 3).
*  Since the code is small and the data smaller, and the disk isn't
*  used, only in-cache performance is tested on most systems.
*
*  References on Whetstones:
*
*    Computer Journal Feb 76       Timing Studies Using a
*    pg 43-49 vol 19 no 1.         Synthetic Whetstone Benchmark,
*    Curnow and Wichmann.          S. Harbaugh & J. Forakris
*
*  This translated ANSI C version copyright 26 Jan 1995 by John Trenholme */

Detailed results

# CT.CompilersAchive:Kevin:dwhet-cw-libmoto:
# CT.CompilersAchive:Kevin:dwhet-cw-libmoto
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       18.10 seconds 
Whetstones   =   110497.24 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7   2.887e-15  8   0.000e+00
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-cw-libmoto
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       18.12 seconds 
Whetstones   =   110395.58 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7   2.887e-15  8   0.000e+00
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-cw-libmoto
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       18.12 seconds 
Whetstones   =   110395.58 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7   2.887e-15  8   0.000e+00
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-cw-mathlib:
# CT.CompilersAchive:Kevin:dwhet-cw-mathlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       22.80 seconds 
Whetstones   =    87719.30 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7   2.220e-16  8   0.000e+00
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-cw-mathlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       22.80 seconds 
Whetstones   =    87719.30 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7   2.220e-16  8   0.000e+00
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-cw-mathlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       22.80 seconds 
Whetstones   =    87719.30 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7   2.220e-16  8   0.000e+00
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-cw-pmlib:
# CT.CompilersAchive:Kevin:dwhet-cw-pmlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       18.47 seconds 
Whetstones   =   108303.25 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7   2.887e-15  8   0.000e+00
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-cw-pmlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       18.50 seconds 
Whetstones   =   108108.11 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7   2.887e-15  8   0.000e+00
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-cw-pmlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       18.47 seconds 
Whetstones   =   108303.25 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7   2.887e-15  8   0.000e+00
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mcc-libmoto:
# CT.CompilersAchive:Kevin:dwhet-mcc-libmoto
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       10.77 seconds 
Whetstones   =   185758.51 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7   2.887e-15  8   2.220e-16
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mcc-libmoto
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       10.78 seconds 
Whetstones   =   185471.41 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7   2.887e-15  8   2.220e-16
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mcc-libmoto
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       10.77 seconds 
Whetstones   =   185758.51 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7   2.887e-15  8   2.220e-16
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mcc-mathlib:
# CT.CompilersAchive:Kevin:dwhet-mcc-mathlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       15.82 seconds 
Whetstones   =   126448.89 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7  -1.110e-16  8   2.220e-16
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mcc-mathlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       15.58 seconds 
Whetstones   =   128342.25 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7  -1.110e-16  8   2.220e-16
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mcc-mathlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       15.58 seconds 
Whetstones   =   128342.25 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7  -1.110e-16  8   2.220e-16
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mcc-pmlib:
# CT.CompilersAchive:Kevin:dwhet-mcc-pmlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       11.13 seconds 
Whetstones   =   179640.72 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7   2.887e-15  8   2.220e-16
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mcc-pmlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       11.13 seconds 
Whetstones   =   179640.72 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7   2.887e-15  8   2.220e-16
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mcc-pmlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       11.15 seconds 
Whetstones   =   179372.20 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  0.000e+00  2   2.220e-16  3   2.220e-16  4   0.000e+00
  5*  0.000e+00  6   0.000e+00  7   2.887e-15  8   2.220e-16
  9   0.000e+00 10*  0.000e+00 11  -6.661e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mrc-libmoto:
# CT.CompilersAchive:Kevin:dwhet-mrc-libmoto
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =        8.05 seconds - use larger outer loop count!
Whetstones   =   248447.20 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  2.082e-17  2   1.345e-16  3   2.482e-16  4   2.082e-17
  5*  2.082e-17  6   2.082e-17  7   2.977e-15  8   1.345e-16
  9   2.082e-17 10*  2.082e-17 11  -6.613e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mrc-libmoto
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =        8.00 seconds - use larger outer loop count!
Whetstones   =   250000.00 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  2.082e-17  2   1.345e-16  3   2.482e-16  4   2.082e-17
  5*  2.082e-17  6   2.082e-17  7   2.977e-15  8   1.345e-16
  9   2.082e-17 10*  2.082e-17 11  -6.613e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mrc-libmoto
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =        8.02 seconds - use larger outer loop count!
Whetstones   =   249480.25 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  2.082e-17  2   1.345e-16  3   2.482e-16  4   2.082e-17
  5*  2.082e-17  6   2.082e-17  7   2.977e-15  8   1.345e-16
  9   2.082e-17 10*  2.082e-17 11  -6.613e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mrc-mathlib:
# CT.CompilersAchive:Kevin:dwhet-mrc-mathlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       12.75 seconds 
Whetstones   =   156862.75 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  2.082e-17  2   1.345e-16  3   2.482e-16  4   2.082e-17
  5*  2.082e-17  6   2.082e-17  7   1.345e-16  8   1.345e-16
  9   2.082e-17 10*  2.082e-17 11  -6.613e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mrc-mathlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       12.75 seconds 
Whetstones   =   156862.75 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  2.082e-17  2   1.345e-16  3   2.482e-16  4   2.082e-17
  5*  2.082e-17  6   2.082e-17  7   1.345e-16  8   1.345e-16
  9   2.082e-17 10*  2.082e-17 11  -6.613e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mrc-mathlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =       12.73 seconds 
Whetstones   =   157068.06 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  2.082e-17  2   1.345e-16  3   2.482e-16  4   2.082e-17
  5*  2.082e-17  6   2.082e-17  7   1.345e-16  8   1.345e-16
  9   2.082e-17 10*  2.082e-17 11  -6.613e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mrc-pmlib:
# CT.CompilersAchive:Kevin:dwhet-mrc-pmlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =        8.33 seconds - use larger outer loop count!
Whetstones   =   240000.00 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  2.082e-17  2   1.345e-16  3   2.482e-16  4   2.082e-17
  5*  2.082e-17  6   2.082e-17  7   2.977e-15  8   1.345e-16
  9   2.082e-17 10*  2.082e-17 11  -6.613e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mrc-pmlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =        8.33 seconds - use larger outer loop count!
Whetstones   =   240000.00 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  2.082e-17  2   1.345e-16  3   2.482e-16  4   2.082e-17
  5*  2.082e-17  6   2.082e-17  7   2.977e-15  8   1.345e-16
  9   2.082e-17 10*  2.082e-17 11  -6.613e-16
============= Note: loops 1, 5 & 10 are unused =============
# CT.CompilersAchive:Kevin:dwhet-mrc-pmlib
=== DOUBLE PRECISION WHETSTONES IN C =======================
            2000 outer loops     inner loop multiplier =  10
=== Note: actual operation rate is about Whetstones / 3 ====
Elapsed time =        8.33 seconds - use larger outer loop count!
Whetstones   =   240000.00 double-precision kilowhets/second
============================================================
Checksum differences from 1.0 (should all be near 0.0) =
  1*  2.082e-17  2   1.345e-16  3   2.482e-16  4   2.082e-17
  5*  2.082e-17  6   2.082e-17  7   2.977e-15  8   1.345e-16
  9   2.082e-17 10*  2.082e-17 11  -6.613e-16
============= Note: loops 1, 5 & 10 are unused =============


Back to MPW Home Page
Back to MPW Home Page