# Dhrystone

Dhrystone és un programa de referència de computació sintètica desenvolupat l'any 1984 per Reinhold P. Weicker amb la intenció de ser representatiu de la programació del sistema (enter). El Dhrystone es va convertir en representatiu del rendiment general del processador (CPU). El nom "Dhrystone" és un joc de paraules sobre un algorisme de referència diferent anomenat Whetstone (jeu de paraules explicat: w h et-stone = pedra humida | d h ry-stone = pedra seca), que emfatitza el rendiment de la coma flotant.
Amb Dhrystone, Weicker va recopilar metadades d'una àmplia gamma de programari, inclosos programes escrits en FORTRAN, PL/1, SAL, ALGOL 68 i Pascal. A continuació, va caracteritzar aquests programes en termes de diversos constructes comuns: crides de procediment, indirectes de punter, assignacions, etc. A partir d'això va escriure el benchmark de Dhrystone per correspondre a una barreja representativa. Dhrystone es va publicar a Ada, amb la versió C per a Unix desenvolupada per Rick Richardson ("versió 1.1") contribuint en gran manera a la seva popularitat.

## Dhrystone vs. Whetstone

El punt de referència de Dhrystone no conté operacions de coma flotant, per la qual cosa el nom és un joc de paraules sobre l'aleshores popular punt de referència Whetstone per a operacions de coma flotant. La sortida del punt de referència és el nombre de Dhrystones per segon (el nombre d'iteracions del bucle de codi principal per segon).
Tant Whetstone com Dhrystone són punts de referència sintètics, és a dir, són programes senzills dissenyats amb cura per imitar estadísticament l'ús del processador d'algun conjunt comú de programes. Whetstone, desenvolupat el 1972, es va esforçar originalment per imitar els programes típics d'Algol 60 basats en mesures de 1970, però finalment es va fer més popular en la seva versió Fortran, reflectint l'orientació altament numèrica de la informàtica als anys seixanta.

## Problemes abordats per Dhrystone

La importància eventual de Dhrystone com a indicador del rendiment de propòsit general ("enter") dels nous ordinadors el va convertir en un objectiu per als escriptors de compiladors comercials. Diverses tècniques modernes d'anàlisi de codi estàtic del compilador (com ara l'eliminació de codi mort: per exemple, el codi que utilitza el processador però produeix resultats interns que no s'utilitzen ni s'emet) dificulten l'ús i el disseny de benchmarks sintètics. La versió 2.0 del benchmark, publicada per Weicker i Richardson el març de 1988, tenia una sèrie de canvis destinats a frustrar una sèrie de tècniques de compilació. Tot i això, va ser dissenyat amb cura per no canviar el punt de referència subjacent. Aquest esforç per frustrar els compiladors només va tenir èxit parcial. Dhrystone 2.1, llançat al maig del mateix any, va tenir alguns canvis menors i a partir del juliol de 2010 segueix sent la definició actual de Dhrystone.

## Resultats

Dhrystone pot representar un resultat més significatiu que MIPS (milions d'instruccions per segon) perquè les comparacions de recompte d'instruccions entre diferents conjunts d'instruccions (per exemple, RISC vs. CISC) poden confondre comparacions simples. Per exemple, la mateixa tasca d'alt nivell pot requerir moltes més instruccions en una màquina RISC, però pot executar-se més ràpidament que una única instrucció CISC. Per tant, la puntuació de Dhrystone compta només el nombre de finalitzacions d'iteració del programa per segon, permetent que les màquines individuals realitzin aquest càlcul d'una manera específica de la màquina. Una altra representació habitual del punt de referència de Dhrystone és el DMIPS (Dhrystone MIPS) obtingut quan la puntuació de Dhrystone es divideix per 1757 (el nombre de Dhrystones per segon obtingut al VAX 11/780, nominalment una màquina d'1 MIPS).
Una altra manera de representar els resultats és en DMIPS/MHz, on el resultat DMIPS es divideix encara més per la freqüència de la CPU, per permetre una comparació més fàcil de les CPU que funcionen a diferents velocitats de rellotge.

## Referències

* ↑ «[file:///home/rai/Downloads/DAI0273A_dhrystone_benchmarking.pdf Dhrystone Benchmarking for ARM Cortex Processors]» (en anglès). [Consulta: 23 octubre 2023].
* ↑ «Dhrystone» (en anglès americà). [Consulta: 22 octubre 2023].
* ↑ «Dhrystone - an overview | ScienceDirect Topics» (en anglès). [Consulta: 22 octubre 2023].
* ↑ «https://www.sciencedirect.com/topics/computer-science/dhrystone» (en anglès). [Consulta: 23 octubre 2023].