Rendimiento de las computadoras
Rango de rendimiento
Una computadora normal de escritorio, que usa por ejemplo un procesador Pentium 4 o Athlon 64, típicamente opera a más de 3 GHz y provee de un desempeño computacional del rango de unos cuantos GFLOPS. Aún algunas consolas de video juegos del final de los años noventa y principios del 2000, tales como Gamecube y Dreamcast, tuvieron un rendimiento mayor a un GFLOPS.
La primera supercomputadora, Cray-1 fue puesta en marcha en el Laboratorio Nacional de Los Álamos en 1976. La Cray-1 era capaz de operar a 80 MFLOPS. En menos de treinta años desde entonces la velocidad computacional de las supercomputadoras es más de un millón de veces mayor.
Ingenieros y científicos de IBM lograron superar la barrera del Petaflop cuando Roadrunner alcanzó la increíble velocidad de 1.026 billones de operaciones por segundo |
La computadora más rápida del mundo hasta la fecha (noviembre 2008) es la supercomputadora Roadrunner, capaz de un pico máximo de 1026 TeraFLOPS (más de 1 PetaFLOPS) con 12.960 procesadores Cell modificados (Play Station 3) y 6480 procesadores Opteron de AMD, que deben correr en paralelo para que la máquina funcione correctamente. Esta instalado en el Departamento Nacional de Seguridad Nuclear de Estados Unidos (NNSA por sus siglas en Inglés). La misma NNSA es dueña de «Blue Gene/L» y «ASC Purple» que actualmente son el segundo y cuarto supercomputadores más rápidos.
La computación distribuida usa internet para conectar computadoras personales y lograr un efecto similar; ha permitido a SETI@Home, el mayor de dichos proyectos, computar a una velocidad de más de 100 TFLOPS. Folding@home ha ganado terreno y actualmente ha logrado una velocidad sostenida de 175 TFLOPS convirtiéndola en una de las supercomputadoras más poderosas del mundo. Otros proyectos similares son Einstein@Home (60 TFLOPS) y climateprediction.net.
Las calculadoras de bolsillo se encuentran al otro extremo del espectro de rendimiento. Cada solicitud a una calculadora típica requiere únicamente de una operación. Así que raramente existe alguna razón para que el tiempo de respuesta exceda el del propio usuario. Cualquier respuesta menor a 0,1 segundos es percibida por el usuario humano como instantánea, de manera que una calculadora simple podría decirse que opera a 10 FLOPS.
Los humanos somos aún peores procesadores de punto flotante. Si a una persona le toma un cuarto de hora realizar una división larga (a papel y lápiz) con diez dígitos significativos, dicha persona estaría computando en el rango de mili FLOPS. Es importante tomar en cuenta que esta prueba puramente matemática puede no representar la capacidad real del cerebro humano. Se estima que el poder de cómputo requerido para procesar olores, sabores, tacto, visión y coordinación motora es del orden de 10 PFLOPS (10 veces el poder de cómputo de «Roadrunner»).
FLOPS como medida de rendimiento
Para que se pueda usar el FLOPS como medida de rendimiento de punto flotante una referencia estándar debe ser establecida para todas las computadoras de interés. Uno de ellos es el estándar LINPACK.
Los FLOPS por sí solos no son un muy útil estándar para computadoras modernas. Existen muchos otros factores de rendimiento tales como I/O (Entrada/Salida), comunicación inter procesador, coherencia del cache y jerarquía de memoria. Esto significa que las computadoras en general son sólo capaces de una fracción del pico teórico en FLOPS, obtenido adicionando el pico teórico en FLOPS de cada uno de los componentes del sistema. Aún cuando se trabaje en problemas grandes y altamente paralelos, su rendimiento será irregular, debido en gran medida a efectos residuales de la ley de Amdahl. Por tanto, los estándares efectivos medirán rendimiento tanto de FLOPS actuales -tiempo real- como de FLOPS sostenidos.
Para aplicaciones ordinarias (no científicas) las operaciones sobre enteros (medidos en MIPS) son mucho más comunes. De lo anterior se deduce que medir el rendimiento en FLOPS no predice con precisión qué tan rápido un procesador realizará cualquier tarea. Sin embargo, para muchas aplicaciones científicas, como el análisis de datos, el rendimiento en FLOPS es una medida efectiva.
FLOPS, GPU y consolas de video juegos
Frecuentemente se publican cifras astronómicas en FLOPS para tarjetas de video y consolas de video juegos. En comparación, un computador de propósito general tendrá un rendimiento de unos cuantos GFLOPS si se considera únicamente su CPU.
Sin embargo, estas cifras deben ser tratadas con precaución, ya que no son comparables «uno a uno» con FLOPS de un computador totalmente programable de propósito general. Estas cifras se basan en el rendimiento total del sistema (CPUs + GPU).
La mayor parte del rendimiento en FLOPS de una consola de videojuegos proviene de su GPU, que es un procesador de vectores altamente ductilizado o segmentado («pipelined» en inglés) optimizado para operaciones gráficas, con muy limitada programabilidad. Esto es posible porque las gráficas en 3D son un ejemplo clásico de un problema altamente paralelizable. Esto significa que el problema puede ser fácilmente dividido entre diferentes unidades de ejecución y «ductos», permitiendo una alta ganancia en velocidad que será obtenida de «escalar» el número de compuertas lógicas en vez de únicamente la velocidad de reloj.
Fuente: wikipedia.org