Articulo de referencia

Prueba de rendimiento (informática)

Una demostración gráfica que se ejecuta como prueba de rendimiento del motor OGRE. En informática , un benchmark es el acto de ejecutar un programa informático , un conjunto de ...

Una demostración gráfica que se ejecuta como prueba de rendimiento del motor OGRE.

En informática , un benchmark 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 mediante la ejecución de una serie de pruebas y ensayos estándar sobre él. [ 1 ]

El término benchmark también se utiliza comúnmente para referirse a los propios programas de benchmarking diseñados con gran detalle.

Las pruebas de rendimiento suelen asociarse con la evaluación de las características de rendimiento del hardware informático , por ejemplo, el rendimiento de las operaciones de coma flotante de una CPU , pero existen circunstancias en las que la técnica también es aplicable al software . Por ejemplo, las pruebas de rendimiento de software se realizan con compiladores o sistemas de gestión de bases de datos (DBMS).

Los benchmarks proporcionan un método para comparar el rendimiento de varios subsistemas en diferentes arquitecturas de chips/sistemas . La evaluación comparativa como parte de la integración continua se denomina evaluación comparativa continua. [ 2 ]

Objetivo

Con el avance de la arquitectura informática , se hizo más difícil comparar el rendimiento de distintos sistemas informáticos simplemente observando sus especificaciones. Por ello, se desarrollaron pruebas que permitían comparar diferentes arquitecturas. Por ejemplo, los procesadores Pentium 4 generalmente funcionaban 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 de cálculo; un procesador con una frecuencia de reloj más baja podía tener un rendimiento igual o incluso superior al de un procesador que funcionara a una frecuencia más alta. Véase BogoMips y el mito del megahercio .

Las pruebas de rendimiento están diseñadas para simular un tipo específico de carga de trabajo en un componente o sistema. Las pruebas sintéticas lo logran mediante programas creados específicamente para imponer dicha carga al componente. Las pruebas de rendimiento de aplicaciones ejecutan programas reales en el sistema. Si bien las pruebas de rendimiento de aplicaciones suelen ofrecer una medida mucho más precisa del rendimiento real de un sistema determinado, las pruebas sintéticas son útiles para probar componentes individuales, como un disco duro o un dispositivo de red.

Los benchmarks son especialmente importantes en el diseño de CPU , ya que permiten a los arquitectos de procesadores medir y sopesar las ventajas y desventajas en las decisiones microarquitectónicas . Por ejemplo, si un benchmark extrae los algoritmos clave de una aplicación, contendrá los aspectos de dicha aplicación que son críticos para su rendimiento. Ejecutar este fragmento, mucho más pequeño, en un simulador con precisión de ciclo puede proporcionar pistas sobre cómo mejorar el rendimiento.

Desde aproximadamente 1995, la colección de pruebas de rendimiento SPEC se ha generalizado.

Es sabido que las empresas informáticas optimizan sus sistemas para mejorar el rendimiento en pruebas comparativas que no reflejan el uso real. Estas pruebas se han mejorado para simular con mayor precisión el uso real, de modo que cualquier optimización se refleje en el rendimiento de las aplicaciones.

Los proveedores de software también utilizan puntos de referencia en su marketing, como las "guerras de puntos de referencia" entre fabricantes rivales de bases de datos relacionales en las décadas de 1980 y 1990. Las empresas suelen informar solo sobre aquellos puntos de referencia (o aspectos de los mismos) que muestran sus productos de la mejor manera. También se sabe que han tergiversado la importancia de los puntos de referencia, nuevamente para mostrar sus productos de la mejor manera posible. [ 3 ] [ 4 ]

Cuando el rendimiento es fundamental, el único parámetro de referencia que importa es el conjunto de aplicaciones del entorno de destino.

Funcionalidad

Las características del software de evaluación comparativa pueden incluir el registro/ exportación del rendimiento a una hoja de cálculo , la visualización mediante gráficos de líneas o mosaicos codificados por colores , y la posibilidad de pausar el proceso para reanudarlo sin tener que empezar 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 permitir medir la velocidad del disco dentro de un rango específico en lugar de medir el disco completo, medir la velocidad y la latencia de lectura de acceso aleatorio , contar con una función de "escaneo rápido" que mide la velocidad mediante muestras de intervalos y tamaños específicos, y permitir especificar el tamaño del bloque de datos , es decir, el número de bytes solicitados por solicitud de lectura. [ 5 ]

Desafíos

La evaluación comparativa no es sencilla y suele requerir 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 presenta una lista parcial de los desafíos más comunes:

  • Los proveedores suelen optimizar sus productos para que cumplan con los estándares de la industria. Norton SysInfo (SI) es particularmente fácil de optimizar, ya que prioriza la velocidad en operaciones múltiples. Se recomienda extrema precaución al interpretar estos resultados.
  • Algunos proveedores han sido acusados ​​de "hacer trampa" en las pruebas de rendimiento: diseñan sus sistemas de tal manera que arrojan resultados mucho más altos, pero no son tan efectivos en la carga de trabajo real probable. [ 6 ]
  • 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, más allá del rendimiento puro. Ejemplos de cualidades del servicio no cuantificables incluyen seguridad, disponibilidad, fiabilidad, integridad de la ejecución, facilidad de mantenimiento, 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 Transaction Processing Performance Council abordan parcialmente estas preocupaciones al especificar pruebas de propiedades ACID , reglas de escalabilidad de bases de datos y requisitos de nivel de servicio.
    • En general, los benchmarks no miden el costo total de propiedad . Las especificaciones de los benchmarks del Transaction Processing Performance Council abordan parcialmente esta preocupación al especificar que se debe informar una métrica de precio/rendimiento además de una métrica de rendimiento bruta, utilizando una fórmula simplificada de TCO . Sin embargo, los costos son necesariamente solo parciales, y se sabe que los proveedores fijan precios específicamente (y solo) para el benchmark, diseñando una configuración "especial para benchmark" muy específica con un precio artificialmente bajo. Incluso una pequeña desviación del paquete de benchmark resulta en un precio mucho más alto en la práctica.
    • Requisitos de infraestructura (espacio, energía y refrigeración). Al consumir más energía, un sistema portátil tendrá una batería de menor duración y requerirá recargas más frecuentes. Un servidor que consume más energía o espacio podría no ajustarse a las limitaciones de recursos del centro de datos, incluidas las de refrigeración. Existen ventajas e inconvenientes reales, ya que la mayoría de los semiconductores requieren más energía para conmutar más rápido. Véase también rendimiento por vatio .
    • En algunos sistemas embebidos, donde la memoria supone un coste significativo, una mayor densidad de código puede reducir considerablemente los costes.
  • Los indicadores de rendimiento de los proveedores suelen ignorar los requisitos de capacidad informática para desarrollo, pruebas y recuperación ante desastres . A los proveedores solo les interesa informar sobre lo estrictamente necesario para la capacidad de producción, con el fin de que su precio de adquisición inicial parezca lo más bajo posible.
  • Los sistemas de evaluación comparativa tienen dificultades para adaptarse a servidores ampliamente distribuidos, especialmente a aquellos con mayor sensibilidad a las topologías de red. La aparición de la computación en malla , en particular, complica la evaluación comparativa, ya que algunas cargas de trabajo son compatibles con este entorno, mientras que otras no.
  • Los usuarios pueden tener percepciones del rendimiento muy diferentes a las que sugieren los benchmarks. En particular, valoran la previsibilidad: servidores que siempre cumplen o superan los acuerdos de nivel de servicio . Los benchmarks tienden a enfatizar las puntuaciones medias (desde la perspectiva de TI), en lugar de los tiempos máximos de respuesta en el peor de los casos ( desde la perspectiva de la computación en tiempo real ) o las bajas desviaciones estándar (desde la perspectiva del usuario).
  • Muchas arquitecturas de servidores se degradan drásticamente a niveles de uso elevados (cercanos al 100%) —un colapso total— y las pruebas de rendimiento deberían tener en cuenta este factor (aunque a menudo no lo hacen). Los proveedores, en particular, suelen publicar pruebas de rendimiento de servidores con un uso continuo de alrededor del 80% —una situación poco realista— y no documentan qué sucede con el sistema en general cuando la demanda supera ese nivel.
  • Muchos benchmarks se centran en una sola aplicación, o incluso en una sola capa de aplicación, excluyendo a las demás. Actualmente, la mayoría de los centros de datos están implementando la virtualización de forma extensiva por diversos motivos, y los benchmarks aún se están adaptando a esta realidad, donde múltiples aplicaciones y capas de aplicación se ejecutan simultáneamente en servidores consolidados.
  • Existen pocos (o ningún) referente de alta calidad que ayude a medir el rendimiento de la computación por lotes, especialmente la computación por lotes concurrente de alto volumen y la computación en línea. La computación por lotes tiende a centrarse mucho más en la previsibilidad de completar correctamente las tareas de larga duración antes de las fechas límite, como el final del mes o del año fiscal. Muchos procesos empresariales centrales importantes están orientados al procesamiento por lotes y probablemente siempre lo estarán, como la facturación.
  • Las instituciones de evaluación comparativa a menudo ignoran o no siguen el método científico básico. Esto incluye, entre otros aspectos: tamaño de muestra pequeño, falta de control de variables y repetibilidad limitada de los resultados. [ 7 ]

Principios de evaluación comparativa

Existen siete características vitales para los puntos de referencia. [ 8 ] Estas propiedades clave son:

  1. Relevancia: Los puntos de referencia deben medir características relativamente vitales.
  2. Representatividad: Las métricas de rendimiento de referencia deben ser ampliamente aceptadas por la industria y el mundo académico.
  3. Equidad: Todos los sistemas deben compararse de manera justa.
  4. Repetibilidad: Los resultados de referencia pueden verificarse.
  5. Rentabilidad: Las pruebas de referencia son económicas.
  6. Escalabilidad: Las pruebas de rendimiento deben funcionar en sistemas que posean una amplia gama de recursos, desde bajos hasta altos.
  7. Transparencia: Las métricas de referencia deben ser fáciles de entender.

Tipos de puntos de referencia

  1. Programa real
  2. Evaluación comparativa de componentes / Microbenchmark
    • 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 [ 9 ]
    • Puede utilizarse para la detección automática de parámetros de hardware del ordenador, como el número de registros, el tamaño de la caché , la latencia de la memoria , etc.
  3. Núcleo
    • contiene códigos clave
    • normalmente abstraído del programa real
    • núcleo popular: bucle de Livermore
    • Prueba de rendimiento de Linpack (contiene una subrutina básica de álgebra lineal escrita en lenguaje FORTRAN).
    • Los resultados se representan en Mflop/s.
  4. Referencia sintética
    • Procedimiento para programar pruebas de rendimiento sintéticas:
      • Obtener estadísticas de todo tipo de operaciones de muchos programas de aplicación.
      • obtener proporción de cada operación
      • Escribe un programa basado en la proporción anterior.
    • Los tipos de índices de referencia sintéticos son:
    • Estos fueron los primeros benchmarks informáticos estándar de la industria para uso general. No necesariamente obtienen puntuaciones altas en las computadoras modernas con arquitectura de procesamiento en paralelo.
  5. pruebas de rendimiento de E/S
  6. Pruebas de rendimiento de bases de datos
    • Medir el rendimiento y los tiempos de respuesta de los sistemas de gestión de bases de datos (DBMS).
  7. Pruebas comparativas paralelas
    • utilizado en máquinas con múltiples núcleos y/o procesadores, o sistemas que constan de varias máquinas

Puntos de referencia comunes

Estándar de la industria (auditado y verificable)

puntos de referencia de código abierto

  • AIM Multiuser Benchmark : compuesto por una lista de pruebas que se pueden combinar para crear una "mezcla de carga" que simule una función informática específica en cualquier sistema operativo de tipo UNIX.
  • Bonnie++ – prueba de rendimiento del sistema de archivos y del disco duro
  • BRL-CAD : conjunto de pruebas de rendimiento multiplataforma e independiente de la arquitectura, basado en el rendimiento del trazado de rayos multihilo; con una referencia respecto a un VAX-11/780; y utilizado desde 1984 para evaluar el rendimiento relativo de la CPU, las diferencias entre compiladores, los niveles de optimización, la coherencia, las diferencias de arquitectura y las diferencias entre sistemas operativos.
  • Conocimiento colectivo : marco personalizable y multiplataforma para la evaluación comparativa y la optimización, mediante crowdsourcing, de las cargas de trabajo de los usuarios (como el aprendizaje profundo ) en hardware proporcionado por voluntarios.
  • Coremark – Prueba de rendimiento para computación integrada
  • DEISA Benchmark Suite : conjunto de pruebas comparativas para aplicaciones científicas de computación de alto rendimiento (HPC).
  • Dhrystone : rendimiento en aritmética de enteros, a menudo expresado en DMIPS (millones de instrucciones por segundo según Dhrystone).
  • DiskSpd : herramienta de línea de comandos para realizar pruebas de rendimiento de almacenamiento que genera diversas solicitudes a archivos , particiones o dispositivos de almacenamiento del ordenador.
  • Fhourstones : un benchmark de enteros
  • SUGERENCIA : diseñado para medir el rendimiento general de la CPU y la memoria.
  • Iometer : herramienta de medición y caracterización de subsistemas de E/S para sistemas individuales y agrupados.
  • IOzone – Prueba de rendimiento del sistema de archivos
  • Pruebas de rendimiento LINPACK : utilizadas tradicionalmente para medir FLOPS.
  • Circuitos de Livermore
  • Pruebas comparativas paralelas de NAS
  • NBench : conjunto de pruebas de rendimiento sintéticas que miden el rendimiento de la aritmética de enteros, las operaciones de memoria y la aritmética de punto flotante.
  • PAL: un referente para motores de física en tiempo real.
  • PerfKitBenchmarker : un conjunto de pruebas de referencia para medir y comparar las ofertas en la nube.
  • Phoronix Test Suite es un conjunto de pruebas de rendimiento multiplataforma de código abierto para Linux, OpenSolaris, FreeBSD, OSX y Windows. Incluye otras pruebas de rendimiento que se muestran en esta página para simplificar su ejecución.
  • POV-Ray – Renderizado 3D
  • Tak (función) : una prueba de rendimiento sencilla utilizada para evaluar el rendimiento de la recursión.
  • TATP Benchmark – Referencia para el procesamiento de transacciones en aplicaciones de telecomunicaciones
  • TPoX : una herramienta de evaluación comparativa para el procesamiento de transacciones XML en bases de datos XML.
  • VUP (unidad de rendimiento VAX) – también llamada VAX MIPS
  • Whetstone : rendimiento de aritmética de punto flotante, que a menudo se expresa en millones de instrucciones Whetstone por segundo (MWIPS).

Pruebas de rendimiento de Microsoft Windows

Otros

  • AnTuTu : se utiliza habitualmente en teléfonos y dispositivos basados ​​en ARM.
  • Byte Sieve : originalmente probaba el rendimiento del lenguaje, pero también se utiliza ampliamente como herramienta de evaluación comparativa de máquinas.
  • Creative Computing Benchmark : compara el lenguaje de programación BASIC en diversas plataformas. Introducido en 1983.
  • Geekbench : una herramienta de evaluación comparativa multiplataforma para Windows, Linux, macOS, iOS y Android.
  • iCOMP : el rendimiento comparativo de microprocesadores de Intel, publicado por Intel.
  • Piedra de Khorne
  • Novabench : una utilidad de evaluación comparativa de rendimiento informático para Microsoft Windows, macOS y Linux.
  • Clasificación de rendimiento : esquema de modelado utilizado por AMD y Cyrix para reflejar el rendimiento relativo, generalmente en comparación con productos de la competencia.
  • Pruebas de rendimiento Rugg/Feldman : una de las primeras pruebas de rendimiento para microordenadores, de 1977.
  • SunSpider : una prueba de velocidad del navegador
  • UserBenchmark - Utilidad de evaluación comparativa para PC
  • VMmark : un conjunto de pruebas de rendimiento para la virtualización.
  • Prueba de Will Smith comiendo espaguetis - para modelos de texto a vídeo .

Véase también

Referencias

  1. Fleming, Philip J.; Wallace, John J. (1986-03-01). "Cómo no mentir con las estadísticas: la forma correcta de resumir los resultados de referencia" . Communications of the ACM . 29 (3): 218– 221. doi : 10.1145/5666.5673 . ISSN 0001-0782 . S2CID 1047380 .  
  2. Grambow, Martin; Lehmann, Fabian; Bermbach, David (2019). "Continuous Benchmarking: Using System Benchmarking in Build Pipelines" . 2019 IEEE International Conference on Cloud Engineering (IC2E) . pp. 241–246 . doi : 10.1109/IC2E.2019.00039 . ISBN  978-1-7281-0218-4. Consultado el 3 de diciembre de 2023 .
  3. "Taller de RDBMS: Informix" (PDF) (Entrevista). Entrevista realizada por Luanne Johnson. Museo de Historia de la Computación. 12 de junio de 2007. Consultado el 30 de mayo de 2025 .
  4. "Taller de RDBMS: Ingres y Sybase" (PDF) (Entrevista). Entrevista realizada por Doug Jerger. Museo de Historia de la Computación. 13 de junio de 2007. Consultado el 30 de mayo de 2025 .
  5. Software: HDDScan, GNOME Disks
  6. Krazit, Tom (2003). "Reevaluación de las tácticas de evaluación comparativa de NVIDIA" . IDG News . Archivado del original el 6 de junio de 2011. Consultado el 8 de agosto de 2009 .
  7. Castor, Kevin (2006). "Metodología de pruebas y evaluación comparativa de hardware" . Archivado del original el 5 de febrero de 2008. Recuperado el 24 de febrero de 2008 .
  8. Dai, Wei; Berleant, Daniel (12-14 de diciembre de 2019). "Benchmarking Contemporary Deep Learning Hardware and Frameworks: a Survey of Qualitative Metrics" (PDF) . 2019 IEEE First International Conference on Cognitive Machine Intelligence (CogMI) . Los Ángeles, CA, EE. UU.: IEEE. pp. 148–155 . arXiv : 1907.03626 . doi : 10.1109/CogMI48466.2019.00029 . 
  9. Ehliar, Andreas; Liu, Dake. "Evaluación comparativa de procesadores de red" (PDF) .{{cite journal}}: Para citar una revista se requiere |journal=( ayuda )
  10. Consejo de Rendimiento del Procesamiento de Transacciones (febrero de 1998). "Historia y descripción general del TPC" . TPC . Consejo de Rendimiento del Procesamiento de Transacciones . Consultado el 2 de julio de 2018 .

Lecturas adicionales

  • Gray, Jim, ed. (1993). The Benchmark Handbook for Database and Transaction Systems . Morgan Kaufmann Series in Data Management Systems (2.ª  ed.). Morgan Kaufmann Publishers, Inc. ISBN 1-55860-292-5.
  • Scalzo, Bert; Kline, Kevin; Fernandez, Claudia; Burleson, Donald K.; Ault, Mike (2007). Métodos prácticos para la evaluación comparativa de bases de datos en Oracle y SQL Server . Rampant TechPress. ISBN 978-0-9776715-3-3.
  • Nambiar, Raghunath; Poess, Meikel, eds. (2009). Evaluación del desempeño y benchmarking . Springer. ISBN 978-3-642-10423-7.
  • 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