stringtranslate.com

Piedra de drystone

Dhrystone es un programa de evaluación comparativa de computación sintética desarrollado en 1984 por Reinhold P. Weicker con la intención de ser representativo de la programación de sistemas ( enteros ). Dhrystone se convirtió en un representante del rendimiento general del procesador ( CPU ). El nombre "Dhrystone" es un juego de palabras con otro algoritmo de evaluación comparativa llamado Whetstone , que enfatiza el rendimiento de punto flotante . [1]

Con Dhrystone, Weicker recopiló metadatos de una amplia gama de software, incluidos programas escritos en FORTRAN , PL/1 , SAL, ALGOL 68 y Pascal . Luego caracterizó estos programas en términos de varias construcciones comunes: llamadas a procedimientos, indirecciones de punteros , asignaciones, etc. A partir de esto, escribió el punto de referencia Dhrystone para que correspondiera a una mezcla representativa. Dhrystone se publicó en Ada , y la versión C para Unix desarrollada por Rick Richardson ("versión 1.1") contribuyó en gran medida a su popularidad.

Dhrystone contra piedra de afilar

El benchmark Dhrystone no contiene operaciones de punto flotante , por lo que el nombre es un juego de palabras con el entonces popular benchmark Whetstone para operaciones de punto flotante. El resultado del benchmark es la cantidad de Dhrystones por segundo (la cantidad de iteraciones del bucle de código principal por segundo).

Tanto Whetstone como Dhrystone son benchmarks sintéticos , lo que significa que son programas simples que están cuidadosamente diseñados para imitar estadísticamente el uso del procesador de un conjunto común de programas. Whetstone, desarrollado en 1972, originalmente intentó imitar los programas típicos de Algol 60 basándose en mediciones de 1970, pero finalmente se volvió más popular en su versión Fortran, lo que refleja la orientación altamente numérica de la computación en la década de 1960.

Cuestiones abordadas por Dhrystone

La importancia que tuvo Dhrystone como indicador del rendimiento de los nuevos ordenadores en términos de propósito general ("entero") lo convirtió en un objetivo para los desarrolladores de compiladores comerciales. Varias técnicas modernas de análisis de código estático de compiladores (como la eliminación de código muerto : por ejemplo, código que utiliza el procesador pero produce resultados internos que no se utilizan ni se muestran) dificultan el uso y el diseño de pruebas de rendimiento sintéticas. La versión 2.0 de la prueba de rendimiento, publicada por Weicker y Richardson en marzo de 1988, tenía una serie de cambios destinados a frustrar una serie de técnicas de compilación. Sin embargo, se diseñó con cuidado para no cambiar la prueba de rendimiento subyacente. Este esfuerzo por frustrar a los compiladores tuvo un éxito parcial. Dhrystone 2.1, publicada en mayo del mismo año, tenía algunos cambios menores y, a julio de 2010, sigue siendo la definición actual de Dhrystone.

Además de los problemas relacionados con la optimización del compilador, se han citado otros problemas con Dhrystone. La mayoría de ellos, incluido el pequeño tamaño del código y del conjunto de datos, se entendieron en el momento de su publicación en 1984. Más sutil es la ligera sobrerrepresentación de las operaciones con cadenas, que está relacionada en gran medida con el lenguaje: tanto Ada como Pascal tienen cadenas como variables normales en el lenguaje, mientras que C no, por lo que lo que era una simple asignación de variables en los puntos de referencia se convirtió en operaciones de copia de búfer en la biblioteca de C. Otro problema es que la puntuación informada no incluye información que es fundamental al comparar sistemas, como qué compilador se utilizó y qué optimizaciones.

Dhrystone sigue siendo notablemente resistente como un simple punto de referencia, pero su valor continuo para establecer el rendimiento real es cuestionable. Es fácil de usar, está bien documentado, es completamente autónomo, se entiende bien y se puede hacer que funcione en casi cualquier sistema. En particular, ha seguido siendo ampliamente utilizado en el mundo de la informática integrada, aunque la suite de pruebas EEMBC desarrollada recientemente, la prueba independiente CoreMark , HINT, Stream e incluso Bytemark son ampliamente citados y utilizados, así como pruebas más específicas para el subsistema de memoria (Cachebench), TCP/IP (TTCP) y muchos otros.

Resultados

Dhrystone puede representar un resultado de manera más significativa que MIPS (millones de instrucciones por segundo) porque las comparaciones de recuento de instrucciones entre diferentes conjuntos de instrucciones (por ejemplo, RISC vs. CISC ) pueden confundir las comparaciones simples. Por ejemplo, la misma tarea de alto nivel puede requerir muchas más instrucciones en una máquina RISC, pero podría ejecutarse más rápido que una sola instrucción CISC. Por lo tanto, la puntuación Dhrystone cuenta solo la cantidad de finalizaciones de iteración del programa por segundo, lo que permite que las máquinas individuales realicen este cálculo de una manera específica de la máquina. Otra representación común del punto de referencia Dhrystone es el DMIPS (Dhrystone MIPS ) obtenido cuando la puntuación Dhrystone se divide por 1757 (la cantidad de Dhrystones por segundo obtenidos en el VAX 11/780 , nominalmente una máquina de 1 MIPS).

Otra forma de representar los resultados es en DMIPS/MHz, donde el resultado de DMIPS se divide además por la frecuencia de la CPU, para permitir una comparación más sencilla de las CPU que funcionan a diferentes frecuencias de reloj .

Defectos

Utilizar Dhrystone como punto de referencia tiene sus inconvenientes:

Véase también

Referencias

  1. ^ Pun : piedra blanca → piedra mojada → piedra seca → piedra seca .
  2. ^ ab Weiss, Alan. "Dhrystone Benchmark: Historia, análisis, "puntuaciones" y recomendaciones" (PDF) . Archivado (PDF) desde el original el 2011-07-26 . Consultado el 2020-04-28 .
  3. ^ Franco Zappa (2017). Microcontroladores: hardware y firmware para dispositivos de 8 y 32 bits . Sociedad Editrice Esculapio. p. 66. ISBN 978-88-9385-022-3.

Enlaces externos