CedarDhrystoneDoc.tioga
Created by Neil Gunther, December 10, 1986 2:11:25 pm PST
Last Edited by: Neil Gunther December 10, 1986 6:19:48 pm PST
CedarDhrystone
CEDAR 6.1 — FOR INTERNAL XEROX USE ONLY
CedarDhrystone
Neil Gunther
© Copyright 1986 Xerox Corporation. All rights reserved.
Abstract: CedarDhrystone is a translation of the popular Dhrystone benchmark written in ADA by Reinhold P. Weicker, CACM 27, No 10, 1984 p. 1013 ff. It exercises the integer operation performance of the processor. The concomitant floating-point benchmark is available in CedarWhetstone.
Created by: Neil Gunther
Maintained by: Neil Gunther <Gunther.pa>
Keywords: Arithmetic, Benchmark
XEROX Xerox Corporation
Palo Alto Research Center
3333 Coyote Hill Road
Palo Alto, California 94304
For Internal Xerox Use Only
1. The Dhrystone Benchmark
The original program contains statements expressed in a high-level programming language, ADA, in a distribution considered representative, VIZ.
Assignments 53%
Control statements 32%
Procedure calls 15%
100 statements are dynamically executed. The program is balanced with respect to the three aspects:
- statement type
- operand type (for simple data types)
- operand access
operand global, local, parameter, or constant.
The combination of these three aspects is balanced only approximately.
The program does not compute anything meaningful, but it is syntactically and semantically correct. No explicit floating-point operations are invoked (see CedarWhetstoneDoc.tioga).
A table of values (expressed as Dhystones/second) for different hardware, exercised by various C compilers, can be found in DhrystoneTable.tioga.
2. The Cedar Implementation
An effort has been made to preserve the intent behind the original ADA version of the benchmark and not to write a piece of supercharged Cedar code.
The salient Cedar modifications to the original code are:
See the comments in the front (under RRA) for what I changed. I added the ability to run it at high priority for repeatable times. I also created a modified version that uses all INLINE routines (stored as InlineDhrystone.mesa). It seems clear that for Dorados the benchmark spends about 30% of its time in procedure call. The Dorado results are:
1 2 3 4
Cedar 3400 3520 —— ——
Inline 4600 4810 5000 5110
1, 3: normal priority (± 50)
2, 4: high priority (± 10)
3, 4: bounds & NIL checking disabled
------------------------------------
The DLion
Normal 490
Fast 540
Fast Inline 715
3. Executing the Benchmark in Cedar
% CedarDhrystone or Dhrystone
will commence execution automatically. All timing is performed internally. In the interest of consistency, no other significant programs should be running at the time the benchmark is performed. The WatchTool is excluded from this caveat since it only consumes about 2% of the cpu.
% FastDhrystone
runs the benchmark as a high priority process.