En informática , un punto de referencia es el acto de ejecutar un programa informático , un conjunto de programas u otras operaciones, con el fin de evaluar el rendimiento relativo de un objeto, normalmente ejecutando una serie de pruebas y ensayos estándar en su contra. [1]
El término benchmark también se utiliza comúnmente para referirse a programas de evaluación comparativa cuidadosamente diseñados.
Los benchmarks proporcionan un método para comparar el rendimiento de varios subsistemas en diferentes arquitecturas de chips/sistemas . El benchmarking como parte de la integración continua se denomina benchmarking continuo. [2]
Objetivo
A medida que la arquitectura informática avanzaba, se hacía más difícil comparar el rendimiento de varios sistemas informáticos simplemente observando sus especificaciones. Por lo tanto, se desarrollaron pruebas que permitían la comparación de diferentes arquitecturas. Por ejemplo, los procesadores Pentium 4 generalmente operaban a una frecuencia de reloj más alta que los procesadores Athlon XP o PowerPC , lo que no se traducía necesariamente en una mayor potencia computacional; un procesador con una frecuencia de reloj más lenta podía funcionar tan bien o incluso mejor que un procesador que operaba a una frecuencia más alta. Véase BogoMips y el mito de los megahercios .
Los benchmarks están diseñados para imitar un tipo particular de carga de trabajo en un componente o sistema. Los benchmarks sintéticos lo hacen mediante programas especialmente creados que imponen la carga de trabajo en el componente. Los benchmarks de aplicaciones ejecutan programas del mundo real en el sistema. Si bien los benchmarks de aplicaciones generalmente brindan una medida mucho mejor del rendimiento del mundo real en un sistema determinado, los benchmarks sintéticos son útiles para probar componentes individuales, como un disco duro o un dispositivo de red.
Los puntos de referencia son particularmente importantes en el diseño de CPU , ya que brindan a los arquitectos de procesadores la capacidad de medir y hacer concesiones en las decisiones de microarquitectura . Por ejemplo, si un punto de referencia extrae los algoritmos clave de una aplicación, contendrá los aspectos sensibles al rendimiento de esa aplicación. Ejecutar este fragmento mucho más pequeño en un simulador con precisión de ciclo puede brindar pistas sobre cómo mejorar el rendimiento.
Antes del año 2000, los arquitectos de computadoras y microprocesadores utilizaban SPEC para hacer esto, aunque los puntos de referencia de SPEC basados en Unix eran bastante largos y, por lo tanto, difíciles de usar intactos.
Se sabe que los fabricantes de computadoras configuran sus sistemas para ofrecer un rendimiento irreal en pruebas comparativas que no se replican en el uso real. Por ejemplo, durante la década de 1980, algunos compiladores podían detectar una operación matemática específica utilizada en una prueba comparativa de punto flotante conocida y reemplazar la operación con una operación matemáticamente equivalente más rápida. Sin embargo, dicha transformación rara vez fue útil fuera de la prueba comparativa hasta mediados de la década de 1990, cuando las arquitecturas RISC y VLIW enfatizaron la importancia de la tecnología de compiladores en relación con el rendimiento. Ahora las pruebas comparativas son utilizadas regularmente por las empresas de compiladores para mejorar no solo sus propias puntuaciones de prueba comparativa, sino también el rendimiento real de la aplicación.
Las CPU que tienen muchas unidades de ejecución (como una CPU superescalar , una CPU VLIW o una CPU de computación reconfigurable ) suelen tener velocidades de reloj más lentas que una CPU secuencial con una o dos unidades de ejecución cuando se construyen a partir de transistores que son igual de rápidos. Sin embargo, las CPU con muchas unidades de ejecución suelen completar tareas del mundo real y de referencia en menos tiempo que las CPU de alta velocidad de reloj supuestamente más rápidas.
Dada la gran cantidad de puntos de referencia disponibles, un fabricante generalmente puede encontrar al menos un punto de referencia que muestre que su sistema superará a otro sistema; se puede demostrar que los otros sistemas sobresalen con un punto de referencia diferente.
Los fabricantes suelen informar sólo sobre los puntos de referencia (o aspectos de los puntos de referencia) que muestran sus productos de la mejor manera. También se sabe que tergiversan la importancia de los puntos de referencia, una vez más para mostrar sus productos de la mejor manera posible. En conjunto, estas prácticas se denominan " marketing de referencia".
Lo ideal sería que los benchmarks sólo sustituyeran a las aplicaciones reales si la aplicación no está disponible o si es demasiado difícil o costoso trasladarla a un procesador o sistema informático específico. Si el rendimiento es fundamental, el único benchmark que importa es el conjunto de aplicaciones del entorno de destino.
Funcionalidad
Las características del software de evaluación comparativa pueden incluir la grabación/ exportación del curso del rendimiento a un archivo de hoja de cálculo , visualización como dibujar gráficos de líneas o mosaicos codificados por colores y pausar el proceso para poder reanudarlo sin tener que comenzar de nuevo. El software puede tener características adicionales específicas para su propósito, por ejemplo, el software de evaluación comparativa de discos puede ser capaz de comenzar opcionalmente a medir la velocidad del disco dentro de un rango específico del disco en lugar de todo el disco, medir la velocidad de lectura de acceso aleatorio y la latencia , tener una función de "escaneo rápido" que mide la velocidad a través de muestras de intervalos y tamaños específicos, y permitir especificar un tamaño de bloque de datos , es decir, la cantidad de bytes solicitados por solicitud de lectura. [3]
Desafíos
La evaluación comparativa no es fácil y a menudo implica varias rondas iterativas para llegar a conclusiones predecibles y útiles. La interpretación de los datos de evaluación comparativa también es extraordinariamente difícil. A continuación, se incluye una lista parcial de los desafíos más comunes:
Los proveedores tienden a ajustar sus productos específicamente para los parámetros de referencia estándar de la industria. Norton SysInfo (SI) es particularmente fácil de ajustar, ya que se centra principalmente en la velocidad de múltiples operaciones. Tenga mucho cuidado al interpretar dichos resultados.
Algunos proveedores han sido acusados de "hacer trampa" en los puntos de referencia, haciendo cosas que arrojan números de referencia mucho más altos, pero empeoran las cosas en la carga de trabajo real probable. [4]
Muchos puntos de referencia se centran exclusivamente en la velocidad del rendimiento computacional , descuidando otras características importantes de un sistema informático, como:
Cualidades del servicio, además del rendimiento bruto. Entre los ejemplos de cualidades del servicio no medidas se incluyen la seguridad, la disponibilidad, la fiabilidad, la integridad de la ejecución, la capacidad de servicio, la escalabilidad (especialmente la capacidad de añadir o reasignar capacidad de forma rápida y sin interrupciones), etc. A menudo existen compensaciones reales entre estas cualidades del servicio, y todas son importantes en la informática empresarial. Las especificaciones de referencia del Consejo de rendimiento del procesamiento de transacciones abordan parcialmente estas preocupaciones al especificar pruebas de propiedades ACID , reglas de escalabilidad de la base de datos y requisitos de nivel de servicio.
En general, los puntos de referencia no miden el costo total de propiedad . Las especificaciones de los puntos de referencia del Consejo de Rendimiento de Procesamiento de Transacciones abordan parcialmente esta inquietud al especificar que se debe informar una métrica de precio/rendimiento además de una métrica de rendimiento bruto, utilizando una fórmula de TCO simplificada . Sin embargo, los costos son necesariamente solo parciales, y se sabe que los proveedores establecen precios específicamente (y solo) para el punto de referencia, diseñando una configuración "especial de referencia" altamente específica con un precio artificialmente bajo. Incluso una pequeña desviación del paquete de referencia da como resultado un precio mucho más alto en la experiencia del mundo real.
Carga de las instalaciones (espacio, energía y refrigeración). Cuando se utiliza más energía, un sistema portátil tendrá una vida útil de batería más corta y necesitará recargarse con más frecuencia. Un servidor que consume más energía o espacio puede no ajustarse a las limitaciones de recursos del centro de datos existente, incluidas las limitaciones de refrigeración. Existen desventajas reales, ya que la mayoría de los semiconductores requieren más energía para conmutar más rápido. Consulte también rendimiento por vatio .
En algunos sistemas integrados, donde la memoria supone un coste significativo, una mejor densidad de código puede reducir significativamente los costes.
Los parámetros de referencia de los proveedores tienden a ignorar los requisitos de capacidad informática para el desarrollo, las pruebas y la recuperación ante desastres . A los proveedores solo les gusta informar sobre lo que podría requerirse en términos específicos en términos de capacidad de producción para que su precio de adquisición inicial parezca lo más bajo posible.
Los benchmarks tienen problemas para adaptarse a servidores ampliamente distribuidos, en particular aquellos con una sensibilidad extra a las topologías de red. La aparición de la computación en red , en particular, complica la evaluación comparativa, ya que algunas cargas de trabajo son "compatibles con la red", mientras que otras no.
Los usuarios pueden tener percepciones del rendimiento muy diferentes a las que sugieren los puntos de referencia. En particular, los usuarios aprecian la previsibilidad: servidores que siempre cumplen o superan los acuerdos de nivel de servicio . Los puntos de referencia tienden a enfatizar las puntuaciones medias (perspectiva de TI), en lugar de los tiempos de respuesta máximos en el peor de los casos ( perspectiva de computación en tiempo real ) o las desviaciones estándar bajas (perspectiva del usuario).
Muchas arquitecturas de servidores se degradan drásticamente en niveles altos de uso (casi 100%) - "caen por un precipicio" - y los benchmarks deberían (pero a menudo no lo hacen) tener en cuenta ese factor. Los proveedores, en particular, tienden a publicar benchmarks de servidores en niveles de uso continuos de alrededor del 80% -una situación poco realista- y no documentan lo que le sucede al sistema en general cuando la demanda supera ese nivel.
Muchos análisis comparativos se centran en una aplicación, o incluso en un nivel de aplicación, y excluyen otras aplicaciones. La mayoría de los centros de datos están implementando ahora la virtualización de forma extensiva por diversas razones, y los análisis comparativos todavía están adaptándose a esa realidad, en la que varias aplicaciones y niveles de aplicación se ejecutan simultáneamente en servidores consolidados.
Existen pocos (si es que hay alguno) puntos de referencia de alta calidad que ayuden a medir el rendimiento de la computación por lotes, especialmente la computación por lotes simultánea y en línea de gran volumen. La computación por lotes tiende a estar mucho más centrada en la previsibilidad de completar correctamente las tareas de larga duración antes de las fechas límite, como fin de mes o fin de año fiscal. Muchos procesos empresariales centrales importantes están orientados a los lotes y probablemente siempre lo estarán, como la facturación.
Las instituciones que realizan evaluaciones comparativas a menudo ignoran o no siguen el método científico básico. Esto incluye, entre otras cosas, el tamaño pequeño de la muestra, la falta de control de las variables y la repetibilidad limitada de los resultados. [5]
Principios de evaluación comparativa
Hay siete características vitales para los puntos de referencia. [6] Estas propiedades clave son:
Relevancia: Los puntos de referencia deben medir características relativamente vitales.
Representatividad: Las métricas de desempeño de referencia deben ser ampliamente aceptadas por la industria y el mundo académico.
Equidad: Todos los sistemas deben ser comparados de manera justa.
Repetibilidad: Se pueden verificar los resultados de referencia.
Rentabilidad: Las pruebas de referencia son económicas.
Escalabilidad: Las pruebas comparativas deben funcionar en sistemas que posean un rango de recursos desde bajos a altos.
Transparencia: Las métricas de referencia deben ser fáciles de entender.
Tipos de benchmark
Programa real
software de procesamiento de textos
software de herramientas de CAD
software de aplicación del usuario (es decir: MIS)
La rutina principal consiste en un fragmento de código relativamente pequeño y específico.
medir el rendimiento de los componentes básicos de una computadora [7]
Puede usarse para la detección automática de parámetros de hardware de la computadora, como número de registros, tamaño de caché , latencia de memoria , etc.
Núcleo
contiene códigos clave
Normalmente abstraído del programa real
núcleo popular: bucle de Livermore
Referencia linpack (contiene subrutinas de álgebra lineal básica escritas en lenguaje FORTRAN)
Los resultados se representan en Mflop/s.
Punto de referencia sintético
Procedimiento para programar benchmark sintético:
Tomar estadísticas de todo tipo de operaciones desde muchos programas de aplicación.
obtener proporción de cada operación
Escribe un programa basado en la proporción anterior.
Estos fueron los primeros benchmarks informáticos de uso general de la industria. No necesariamente obtienen puntuaciones altas en los ordenadores modernos con pipeline.
Puntos de referencia de E/S
Puntos de referencia de bases de datos
Medir el rendimiento y los tiempos de respuesta de los sistemas de gestión de bases de datos (DBMS)
Puntos de referencia paralelos
Se utiliza en máquinas con múltiples núcleos y/o procesadores, o sistemas que constan de múltiples máquinas.
AIM Multiuser Benchmark : compuesto por una lista de pruebas que podrían combinarse para crear una "combinación de carga" que simularía una función específica de computadora en cualquier sistema operativo tipo UNIX.
Bonnie++ : evaluación comparativa del sistema de archivos y del disco duro
BRL-CAD : conjunto de pruebas comparativas multiplataforma, independiente de la arquitectura, basado en el rendimiento del trazado de rayos multiproceso; comparado con un VAX-11/780; y utilizado desde 1984 para evaluar el rendimiento relativo de la CPU, las diferencias del compilador, los niveles de optimización, la coherencia, las diferencias de arquitectura y las diferencias del sistema operativo.
Conocimiento colectivo : marco personalizable y multiplataforma para la evaluación comparativa y la optimización colectiva de las cargas de trabajo de los usuarios (como el aprendizaje profundo ) en hardware proporcionado por voluntarios
Coremark : punto de referencia para informática integrada
NBench : conjunto de pruebas comparativas sintéticas que miden el rendimiento de la aritmética de números enteros, las operaciones de memoria y la aritmética de punto flotante
PAL : un referente para los motores de física en tiempo real
PerfKitBenchmarker : un conjunto de puntos de referencia para medir y comparar ofertas en la nube.
Phoronix Test Suite : conjunto de pruebas comparativas multiplataforma de código abierto para Linux, OpenSolaris, FreeBSD, OSX y Windows. Incluye una serie de otras pruebas comparativas incluidas en esta página para simplificar la ejecución.
Clasificación de rendimiento : esquema de modelado utilizado por AMD y Cyrix para reflejar el rendimiento relativo generalmente comparado con productos de la competencia.
Conjunto de pruebas : una colección de casos de prueba destinados a demostrar que un programa de software tiene un conjunto específico de comportamientos.
Referencias
^ Fleming, Philip J.; Wallace, John J. (1 de marzo de 1986). "Cómo no mentir con las estadísticas: la forma correcta de resumir los resultados de los estudios comparativos". Comunicaciones de la ACM . 29 (3): 218–221. doi : 10.1145/5666.5673 . ISSN 0001-0782. S2CID 1047380.
^ Grambow, Martin; Lehmann, Fabian; Bermbach, David (2019). "Evaluación comparativa continua: uso de la evaluación comparativa del sistema en los procesos de desarrollo". Conferencia internacional IEEE sobre ingeniería de la nube (IC2E) de 2019. págs. 241–246. doi :10.1109/IC2E.2019.00039. ISBN978-1-7281-0218-4. Consultado el 3 de diciembre de 2023 .
^ Software: HDDScan, Discos GNOME
^ Krazit, Tom (2003). "Las tácticas de benchmarking de NVidia reevaluadas". IDG News . Archivado desde el original el 2011-06-06 . Consultado el 2009-08-08 .
^ Castor, Kevin (2006). "Metodología de evaluación comparativa y pruebas de hardware". Archivado desde el original el 5 de febrero de 2008. Consultado el 24 de febrero de 2008 .
^ Dai, Wei; Berleant, Daniel (12-14 de diciembre de 2019). "Evaluación comparativa de hardware y marcos de aprendizaje profundo contemporáneos: un estudio de métricas cualitativas" (PDF) . Primera conferencia internacional IEEE de 2019 sobre inteligencia artificial cognitiva (CogMI) . Los Ángeles, CA, EE. UU.: IEEE. págs. 148-155. arXiv : 1907.03626 . doi :10.1109/CogMI48466.2019.00029.
^ Ehliar, Andreas; Liu, Dake. "Evaluación comparativa de procesadores de red" (PDF) .{{cite journal}}: Requiere citar revista |journal=( ayuda )
^ Transaction Processing Performance Council (febrero de 1998). "Historia y descripción general del TPC". TPC . Transaction Processing Performance Council . Consultado el 2 de julio de 2018 .
Lectura adicional
Gray, Jim, ed. (1993). Manual de referencia para sistemas de bases de datos y transacciones . Serie Morgan Kaufmann sobre sistemas de gestión de datos (2.ª ed.). Morgan Kaufmann Publishers, Inc. ISBN 1-55860-292-5.
Scalzo, Bert; Kline, Kevin; Fernández, Claudia; Burleson, Donald K.; Ault, Mike (2007). Métodos prácticos de evaluación comparativa de bases de datos para Oracle y SQL Server . Rampant TechPress. ISBN 978-0-9776715-3-3.
Nambiar, Raghunath; Poess, Meikel, eds. (2009). Evaluación del desempeño y evaluación comparativa . Springer. ISBN 978-3-642-10423-7.
Enlaces externos
Lewis, Byron C.; Crews, Albert E. (1985). "La evolución del benchmarking como técnica de evaluación del rendimiento informático" . MIS Quarterly . 9 (1): 7–16. doi :10.2307/249270. ISSN 0276-7783. JSTOR 249270.Las fechas: 1962-1976
Wikimedia Commons alberga una categoría multimedia sobre Benchmarks (informática) .