NBench , abreviatura de Native mode Benchmark y posteriormente conocido como BYTEmark , es un programa de evaluación comparativa de computación sintética desarrollado a mediados de la década de 1990 por la ahora desaparecida revista BYTE, destinado a medir la velocidad de la CPU , la FPU y el sistema de memoria de una computadora .
NBench es esencialmente la versión 2 del programa de evaluación comparativa BYTEmark de la revista BYTE (anteriormente conocido como Native Mode Benchmarks de BYTE), publicado alrededor de 1995, que fue solo unos años antes de que la revista dejara de publicarse. NBench está escrito en C y, en un principio, se centró en PC que ejecutaban el sistema operativo Microsoft Windows . Independientemente de BYTE, en 1996 NBench fue portado a Linux y otras versiones de Unix por Uwe F. Mayer. [1] Más recientemente, Ludovic Drolez preparó una aplicación NBench para el sistema operativo de dispositivos móviles Android . [2] NBench no debe confundirse con el AMD N-Bench, que tiene un nombre similar pero no está relacionado con él. [3]
El conjunto de algoritmos NBench consta de diez tareas diferentes: [4]
La ejecución de la serie de pruebas comparativas consta básicamente de dos fases para cada una de las pruebas. En primer lugar, se ejecuta un ciclo de calibración para determinar el tamaño del problema que el sistema puede resolver en un tiempo razonable, con el fin de adaptarse al hardware informático cada vez más rápido disponible. En segundo lugar, la prueba real se ejecuta varias veces para obtener un resultado estadísticamente significativo.
Originalmente, NBench y BYTEmark produjeron dos figuras de índice generales: índice de enteros e índice de punto flotante. El índice de enteros es la media geométrica de aquellas pruebas que involucran solo procesamiento de enteros (ordenamiento numérico, ordenamiento de cadenas, campo de bits, punto flotante emulado, asignación, Huffman e IDEA), mientras que el índice de punto flotante es la media geométrica de aquellas pruebas que requieren el coprocesador de punto flotante (Fourier, red neuronal y descomposición LU). Las figuras del índice eran puntajes relativos para obtener una idea general del rendimiento de la máquina bajo prueba en comparación con un sistema de referencia basado en una CPU Intel Pentium de 90 MHz.
El puerto Linux/Unix tiene una segunda máquina de referencia, es un AMD K6/233 con 32 MB de RAM y 512 KB de caché L2 que ejecuta Linux 2.0.32 y usa GNU gcc versión 2.7.2.3 y libc-5.4.38. El índice de enteros original se dividió en un índice de operaciones de enteros y un índice de operaciones de memoria, como lo sugirió Andrew D. Balsa, lo que refleja la comprensión de que la administración de memoria es importante en el diseño de CPU. Las pruebas originales se dejaron como están, sin embargo, la media geométrica de las pruebas de ordenamiento numérico, emulación de punto flotante, IDEA y Huffman ahora constituye el índice de referencia centrado en aritmética de enteros, mientras que la media geométrica de las pruebas de ordenamiento de cadenas, campo de bits y asignación compone el nuevo índice de memoria. El índice de punto flotante se dejó solo, sigue siendo la media geométrica de Fourier, red neuronal y descomposición LU.
La suite de pruebas de rendimiento ha sido utilizada de manera consistente desde mediados de los años 90 por la comunidad de computadoras personales, en PC y otros dispositivos que ejecutan varias versiones de UNIX, incluyendo Linux [5] [6] o BSD , [7] o que ejecutan Windows (generalmente en combinación con Cygwin ), [8] y también en Macs (en particular, está disponible como un puerto de Darwin [9] ). El porter original mantiene una página de resultados de ejecuciones en muchas configuraciones de hardware diferentes, desde servidores multi-CPU de alta potencia hasta conmutadores de red de baja potencia. [8]
El uso de NBench como punto de referencia tiene sus inconvenientes: