Knowledge

Dhrystone

Source 📝

308:: for example, code which uses the processor but produces internal results which are not used or output) make the use and design of synthetic benchmarks more difficult. Version 2.0 of the benchmark, released by Weicker and Richardson in March 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 as of July 2010 remains the current definition of Dhrystone. 240: 36: 340:) can confound simple comparisons. For example, the same high-level task may require many more instructions on a RISC machine, but might execute faster than a single CISC instruction. Thus, the Dhrystone score counts only the number of program iteration completions per second, allowing individual machines to perform this calculation in a machine-specific way. Another common representation of the Dhrystone benchmark is the 312:
operations, which is largely language-related: both Ada and Pascal have strings as normal variables in the language, whereas C does not, so what was simple variable assignment in reference benchmarks became buffer copy operations in the C library. Another issue is that the score reported does not include information which is critical when comparing systems such as which compiler was used, and what optimizations.
315:
Dhrystone remains remarkably resilient as a simple benchmark, but its continuing value in establishing true performance is questionable. It is easy to use, well documented, fully self-contained, well understood, and can be made to work on almost any system. In particular, it has remained in broad
374:
It is susceptible to compiler optimizations. For example, it does a lot of string copying in an attempt to measure string copying performance. However, the strings in Dhrystone are of known constant length and their starts are aligned on natural boundaries, two characteristics usually absent from
225:
benchmarks, meaning that they are simple programs that are carefully designed to statistically mimic the processor usage of 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
311:
Other than issues related to compiler optimization, various other issues have been cited with the Dhrystone. Most of these, including the small code size and small data set size, were understood at the time of its publication in 1984. More subtle is the slight over-representation of string
375:
real programs. Therefore, an optimizer can replace a string copy with a sequence of word moves without any loops, which will be much faster. This optimization consequently overstates system performance, sometimes by more than 30%.
324:
standalone benchmark, HINT, Stream, and even Bytemark are widely quoted and used, as well as more specific benchmarks for the memory subsystem (Cachebench), TCP/IP (TTCP), and many others.
300:
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
332:
Dhrystone may represent a result more meaningfully than MIPS (million instructions per second) because instruction count comparisons between different instruction sets (e.g.
218:
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).
355:
Another way to represent results is in DMIPS/MHz, where DMIPS result is further divided by CPU frequency, to allow for easier comparison of CPUs running at different
394:
benchmark was created in 1988 to include a suite of (initially 8) much larger programs (including a compiler) which could not fit into L1 or L2 caches of that era.
144: 465: 583: 404: 190:, assignments, etc. From this he wrote the Dhrystone benchmark to correspond to a representative mix. Dhrystone was published in 498: 100: 72: 287: 119: 269: 337: 578: 345: 152: 79: 265: 57: 183: 348:) obtained when the Dhrystone score is divided by 1757 (the number of Dhrystones per second obtained on the 86: 170:
With Dhrystone, Weicker gathered meta-data from a broad range of software, including programs written in
261: 226:
popular in its Fortran version, reflecting the highly numerical orientation of computing in the 1960s.
191: 186:. He then characterized these programs in terms of various common constructs: procedure calls, pointer 53: 68: 524: 458: 250: 195: 254: 46: 390:, thus not exercising data cache miss performance. To counter fits-in-the-cache problem, the 305: 215: 160: 140: 17: 301: 386:
performance is not rigorously tested. Similarly, Dhrystone may also fit completely in the
8: 371:
It features unusual code that is not usually representative of modern real-life programs.
543: 159:) performance. The name "Dhrystone" is a pun on a different benchmark algorithm called 93: 494: 383: 379: 202:
developed by Rick Richardson ("version 1.1") greatly contributing to its popularity.
547: 533: 433: 211: 164: 572: 556: 538: 519: 562: 187: 387: 356: 459:"Dhrystone Benchmark: History, Analysis, "Scores" and Recommendations" 410: 491:
Microcontrollers: Hardware and Firmware for 8-bit and 32-bit devices
239: 35: 321: 316:
use in the embedded computing world, though the recently developed
179: 557:
Dhrystone Benchmark: Rationale for Version 2 and Measurement Rules
391: 171: 148: 151:) programming. The Dhrystone grew to become representative of 317: 333: 199: 175: 429: 349: 156: 214:
operations, thus the name is a pun on the then-popular
520:"Dhrystone: A Synthetic Systems Programming Benchmark" 60:. Unsourced material may be challenged and removed. 570: 229: 367:Using Dhrystone as a benchmark has pitfalls: 488: 136: 405:Standard Performance Evaluation Corporation 378:Dhrystone's small code size may fit in the 268:. Unsourced material may be challenged and 493:. Società Editrice Esculapio. p. 66. 205: 537: 288:Learn how and when to remove this message 147:intended to be representative of system ( 120:Learn how and when to remove this message 517: 452: 450: 14: 584:Computer-related introductions in 1984 571: 447: 266:adding citations to reliable sources 233: 210:The Dhrystone benchmark contains no 58:adding citations to reliable sources 29: 24: 518:Weicker, Reinhold (October 1984). 25: 595: 511: 456: 221:Both Whetstone and Dhrystone are 238: 34: 471:from the original on 2011-07-26 362: 352:, nominally a 1 MIPS machine). 45:needs additional citations for 482: 423: 13: 1: 416: 230:Issues addressed by Dhrystone 143:program developed in 1984 by 27:Computer benchmarking program 7: 565:(Reinhold P. Weicker, 1995) 563:DHRYSTONE Benchmark Program 559:(Reinhold P. Weicker, 1988) 440:→ wet stone → dry stone → d 398: 10: 600: 327: 525:Communications of the ACM 382:of a modern CPU, so that 306:elimination of dead code 206:Dhrystone vs. Whetstone 579:Benchmarks (computing) 539:10.1145/358274.358283 489:Franco Zappa (2017). 320:benchmark suite, the 304:techniques (such as 302:static code analysis 262:improve this section 54:improve this article 163:, which emphasizes 145:Reinhold P. Weicker 500:978-88-9385-022-3 384:instruction fetch 380:instruction cache 298: 297: 290: 153:general processor 130: 129: 122: 104: 16:(Redirected from 591: 551: 541: 505: 504: 486: 480: 479: 477: 476: 470: 463: 454: 445: 427: 293: 286: 282: 279: 273: 242: 234: 125: 118: 114: 111: 105: 103: 62: 38: 30: 21: 599: 598: 594: 593: 592: 590: 589: 588: 569: 568: 532:(10): 1013–30. 514: 509: 508: 501: 487: 483: 474: 472: 468: 461: 455: 448: 428: 424: 419: 401: 365: 330: 294: 283: 277: 274: 259: 243: 232: 208: 126: 115: 109: 106: 63: 61: 51: 39: 28: 23: 22: 15: 12: 11: 5: 597: 587: 586: 581: 567: 566: 560: 553: 552: 513: 512:External links 510: 507: 506: 499: 481: 446: 421: 420: 418: 415: 414: 413: 408: 400: 397: 396: 395: 376: 372: 364: 361: 329: 326: 296: 295: 246: 244: 237: 231: 228: 212:floating point 207: 204: 165:floating point 128: 127: 42: 40: 33: 26: 9: 6: 4: 3: 2: 596: 585: 582: 580: 577: 576: 574: 564: 561: 558: 555: 554: 549: 545: 540: 535: 531: 527: 526: 521: 516: 515: 502: 496: 492: 485: 467: 460: 457:Weiss, Alan. 453: 451: 443: 439: 437: 431: 426: 422: 412: 409: 406: 403: 402: 393: 389: 385: 381: 377: 373: 370: 369: 368: 360: 358: 353: 351: 347: 343: 339: 335: 325: 323: 319: 313: 309: 307: 303: 292: 289: 281: 271: 267: 263: 257: 256: 252: 247:This section 245: 241: 236: 235: 227: 224: 219: 217: 213: 203: 201: 197: 193: 189: 185: 181: 177: 173: 168: 167:performance. 166: 162: 158: 154: 150: 146: 142: 138: 134: 124: 121: 113: 102: 99: 95: 92: 88: 85: 81: 78: 74: 71: –  70: 66: 65:Find sources: 59: 55: 49: 48: 43:This article 41: 37: 32: 31: 19: 529: 523: 490: 484: 473:. Retrieved 441: 435: 425: 366: 363:Shortcomings 354: 341: 331: 314: 310: 299: 284: 275: 260:Please help 248: 222: 220: 209: 198:version for 188:indirections 169: 132: 131: 116: 107: 97: 90: 83: 76: 64: 52:Please help 47:verification 44: 357:clock rates 344:(Dhrystone 194:, with the 69:"Dhrystone" 573:Categories 475:2020-04-28 417:References 388:data cache 350:VAX 11/780 139:computing 80:newspapers 411:Geekbench 278:June 2021 249:does not 223:synthetic 216:Whetstone 161:Whetstone 141:benchmark 137:synthetic 133:Dhrystone 110:June 2021 466:Archived 444:rystone. 399:See also 322:CoreMark 180:ALGOL 68 548:9026014 438:etstone 392:SPECint 328:Results 270:removed 255:sources 178:, SAL, 172:FORTRAN 149:integer 94:scholar 546:  497:  407:(SPEC) 184:Pascal 182:, and 96:  89:  82:  75:  67:  544:S2CID 469:(PDF) 462:(PDF) 342:DMIPS 318:EEMBC 135:is a 101:JSTOR 87:books 18:DMIPS 495:ISBN 346:MIPS 338:CISC 336:vs. 334:RISC 253:any 251:cite 200:Unix 176:PL/1 73:news 534:doi 430:Pun 264:by 192:Ada 157:CPU 56:by 575:: 542:. 530:27 528:. 522:. 464:. 449:^ 432:: 359:. 174:, 550:. 536:: 503:. 478:. 442:h 436:h 434:w 291:) 285:( 280:) 276:( 272:. 258:. 196:C 155:( 123:) 117:( 112:) 108:( 98:· 91:· 84:· 77:· 50:. 20:)

Index

DMIPS

verification
improve this article
adding citations to reliable sources
"Dhrystone"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
synthetic
benchmark
Reinhold P. Weicker
integer
general processor
CPU
Whetstone
floating point
FORTRAN
PL/1
ALGOL 68
Pascal
indirections
Ada
C
Unix
floating point
Whetstone

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.