Measuring CPU speeds ( was RE: Why isn't Apple releasing patches for the Month of Apple )

Hex Star hexstar at gmail.com
Wed Feb 14 00:51:20 CST 2007


On 2/13/07, aliensrcooluk at yahoo.co.uk <aliensrcooluk at yahoo.co.uk> wrote:
>
>
> --- arcarlini at iee.org wrote:
> > Tony Duell wrote:
> >
> > > However, 'What is an instruction?'. I've heard i
> t
> > said that the 11/780
> > > averaged 500,000 of its machine instructions per
> > second, but that that
> > > was about as much processing as 10^6 of other
> > machine's instructions
> >
> > The VAX-11/780 cranked out about as many Dhrystone
> s
> > as an
> > IBM System/370 158 which did (apparently) chew
> > through about
> > one million instructions per second.
> >
>
> **>> snip <<**
>
> > Antonio
> >
>
>
> Speaking of Dhrystones.... what is one?
>
>
>
> Regards,
> Andrew D. Burton
> aliensrcooluk at yahoo.co.uk
>
>
Dhrystone From Wikipedia, the free encyclopedia Jump to:
navigation<http://en.wikipedia.org/wiki/Dhrystone#column-one>,
search <http://en.wikipedia.org/wiki/Dhrystone#searchInput>

*Dhrystone* is a synthetic
benchmark<http://en.wikipedia.org/wiki/Benchmark_%28computing%29>program
developed in
1984 <http://en.wikipedia.org/wiki/1984> by Reinhold P. Weicker intended to
be representative of system (integer) programming. The Dhrystone grew to
become representative of general processor (CPU) performance until it was
superseded by the CPU89 benchmark suite from the Standard Performance
Evaluation Corporation<http://en.wikipedia.org/wiki/Standard_Performance_Evaluation_Corporation>,
today known as the "SPECint <http://en.wikipedia.org/wiki/SPECint>" suite.

With Dhrystone, Weicker gathered meta-data from a broad range of software -
including programs written in FORTRAN, PL/1, SAL, ALGOL 68, and Pascal. He
then characterized these programs in terms of various common constructs -
procedure calls, pointer indirections, assignments, etc. From this he wrote
the Dhrystone benchmark to correspond to a representative mix. Dhrystone was
published in Ada, with the C version for Unix developed by Rick Richardson
("version 1.1") greatly contributing to its popularity.
  Contents [hide <javascript:toggleToc()>]

   - 1 Dhrystone vs
Whetstone<http://en.wikipedia.org/wiki/Dhrystone#Dhrystone_vs_Whetstone>
   - 2 Issues addressed by
Dhrystone<http://en.wikipedia.org/wiki/Dhrystone#Issues_addressed_by_Dhrystone>
   - 3 Results <http://en.wikipedia.org/wiki/Dhrystone#Results>
   - 4 See also <http://en.wikipedia.org/wiki/Dhrystone#See_also>
   - 5 References <http://en.wikipedia.org/wiki/Dhrystone#References>

  [edit<http://en.wikipedia.org/w/index.php?title=Dhrystone&action=edit&section=1>
] Dhrystone vs Whetstone

The Dhrystone benchmark contains no floating
point<http://en.wikipedia.org/wiki/Floating_point>operations, thus the
name is a pun on the then-popular
Whetstone <http://en.wikipedia.org/wiki/Whetstone_%28benchmark%29> benchmark
for floating point operations. The output from the benchmark is the number
of Dhrystones per second (the number of iterations of the main code loop per
second).

Both Whetstone and Dhrystone are *synthetic* benchmarks, meaning that they
are simple programs that are carefully designed to statistically mimic some
common set of programs. Whetstone, developed in 1972, originally strove to
mimic typical Algol 60 programs based on measurements from 1970, but
eventually became most popular in its Fortran version. Whetstone thus
reflected the highly numerical orientation of computing in the 1960s.

[edit<http://en.wikipedia.org/w/index.php?title=Dhrystone&action=edit&section=2>
] Issues addressed by Dhrystone

Dhrystone's eventual importance as an indicator of general-purpose
("integer") performance of new computers made it a target for commercial
compiler writers. Various modern compiler techniques (such as dead code
elimination) make the use and design of synthetic benchmarks more difficult.
Version 2.0 of the benchmark, released by Weicker and Richardson in March of
1988, had a number of changes intended to foil a range of compiler
techniques. Yet it was carefully crafted so as not to change the underlying
benchmark. This effort to foil compilers was only partly successful.
Dhrystone 2.1, released in May of the same year, had some minor changes and
remains the current definition of Dhrystone.

Other than issues related to compiler optimization, various other issues
have been cited with the Dhrystone. Most of these were understood at the
time of its publication in 1984 - including the small code size and small
data set size. More subtle is the slight over-representation of string
operations, which is largely language related: both Ada and Pascal have
strings as first class citizens in the language, whereas C does not, so what
was simple variable assignments in reference benchmarks became buffer copy
operations in the C library.

Dhrystone remains remarkably resilient as a simple benchmark. It is easy to
use, well documented, is fully self-contained, is well understood, and can
be made to work on almost any system. In particular, it has remained in
broad use in the embedded computing world, though the recently developed *
EEMBC <http://en.wikipedia.org/wiki/EEMBC>* benchmark suite is likely to
supersede it in that role just as SPEC's CPU89 did for the general computing
and server markets. Still, 20 years of continued use is quite a testament to
Weicker's careful design and foresight.

[edit<http://en.wikipedia.org/w/index.php?title=Dhrystone&action=edit&section=3>
] Results

Dhrystone tries to represent the result more meaningfully than MIPS (million
instructions per second), because MIPS cannot be used across different
instruction sets (e.g. RISC <http://en.wikipedia.org/wiki/RISC> vs.
CISC<http://en.wikipedia.org/wiki/CISC>)
for the same computation requirement from users. Thus, the main score is
just Dhrystone loops per second. Another common representation of the
Dhrystone benchmark is the *DMIPS* - Dhrystone
MIPS<http://en.wikipedia.org/wiki/Million_instructions_per_second>-
obtained when the Dhrystone score is divided by 1,757 (the number of
Dhrystones per second obtained on the VAX
11/780<http://en.wikipedia.org/wiki/VAX>,
nominally a 1 MIPS machine).

[edit<http://en.wikipedia.org/w/index.php?title=Dhrystone&action=edit&section=4>
] See also

Benchmark (computing)<http://en.wikipedia.org/wiki/Benchmark_%28computing%29>

Whetstone (benchmark)<http://en.wikipedia.org/wiki/Whetstone_%28benchmark%29>

[edit<http://en.wikipedia.org/w/index.php?title=Dhrystone&action=edit&section=5>
] References

   - Newsgroup posting for calculation of
DMIPS<http://groups.google.com/groups?q=DMIPS&hl=en&group=comp.benchmarks&rnum=1&selm=tsengDKq856.Gy6%40netcom.com>
   - http://www.netlib.org/benchmark/dhry-c c version of Dhrystone in a
   sh file.



More information about the cctech mailing list