Uploaded by Alejandro Roas

Tema05

advertisement
Rendimiento de Computadoras
ARQUITECTURA
RENDIMIENTO DE COMPUTADORAS
1 Costo, rendimiento y costo /
rendimiento
Una gran cantidad de trabajo en arquitectura de computadoras trata con los
métodos para mejorar el rendimiento de máquina. En este sentido, todas las
decisiones de diseño al construir computadoras, desde el diseño de conjunto
de instrucciones hasta el uso de técnicas de implementación como predicción
de decisiones, memorias caché y paralelismo, si no principalmente están
motivadas por el mejoramiento del rendimiento, al menos se hacen con ese
propósito. De acuerdo con lo anterior, es importante tener una definición
operativa precisa para el concepto rendimiento, conocer sus relaciones con
otros aspectos de la calidad y utilidad de las computadoras, y aprender cómo
se puede cuantificar con propósitos de comparación y decisiones de
comercialización.
1
Rendimiento de Computadoras
ARQUITECTURA
Un segundo atributo clave de un sistema de cómputo es su costo. En
cualquier año específico, probablemente se pueda diseñar y construir una
computadora que sea más rápida que la más rápida de las computadoras
actuales disponibles en el mercado. Sin embargo, el costo podría ser tan
inalcanzable que quizá esta última máquina nunca se construya o se fabrique
en cantidades muy pequeñas por agencias que estén interesadas en avanzar
el estado del arte y no les importe gastar una cantidad exorbitante para lograr
esa meta. Por lo tanto, la máquina de mayor rendimiento que sea
tecnológicamente factible puede nunca materializarse porque es ineficaz en
costo (tiene una razón costo/rendimiento inaceptable debido a su alto costo).
Sería simplista igualar el costo de una computadora con su precio de compra.
En vez de ello, se debería intentar evaluar su costo de ciclo de vida, que
incluye actualizaciones, mantenimiento, uso y otros costos recurrentes.
Observe que una computadora que se compra por dos mil dólares tiene
diferentes costos. Puede haberle costado 1 500 dólares al fabricante (por
componentes de hardware, licencias de software, mano de obra, embarque,
publicidad), y los 500 dólares restantes cubran comisiones de ventas y
2
Rendimiento de Computadoras
ARQUITECTURA
rentabilidad. En este contexto, podría llegar a costar cuatro mil dólares
durante su tiempo de vida una vez agregado servicio, seguro, software
adicional, actualizaciones de hardware, etcétera.
Con la intensión de aumentar el rendimiento de una computadora, se
considera que al sustituir un procesador de computadora con uno más rápido
no tendrá un impacto significativo en el rendimiento porque éste se encuentra
limitado por la memoria principal o el ancho de banda I/O existente.
3
Rendimiento de Computadoras
ARQUITECTURA
2 Definición de rendimiento de
computadora
Como usuarios, uno espera que una computadora de mayor rendimiento corra
más rápido los programas de aplicaciones. De hecho, el tiempo de ejecución
de los programas, ya sean cálculos de largo procesamiento o comandos
simples a los que la computadora debe reaccionar de inmediato, es un
indicador de rendimiento universalmente aceptado. En virtud de que un
tiempo de ejecución más largo implica rendimiento más bajo, se puede
escribir:
Rendimiento = 1/tiempo de ejecución
De este modo, el hecho de que una computadora ejecute un programa en la
mitad del tiempo que le toma a otra máquina significa que tiene el doble de
rendimiento. Todos los otros indicadores representan aproximaciones al
rendimiento que se usan porque uno no puede medir o predecir los tiempos
de ejecución para programas reales. Las posibles razones incluyen falta de
conocimiento acerca de exactamente cuáles programas correrán en la
máquina, el costo de transferir programas a un sistema nuevo por el solo
4
Rendimiento de Computadoras
ARQUITECTURA
propósito de evaluación comparativa, y la necesidad de valorar una
computadora que todavía no se ha construido o de algún otro modo no está
disponible para experimentación.
Un usuario puede estar preocupado no con el tiempo de ejecución del
programa, sino con el tiempo de respuesta o el tiempo de retorno total, que
incluye latencia adicional atribuible a decisiones de calendarización,
interrupciones de trabajo, retardos por cola I/O, etc. A veces a esto se le
refiere como tiempo de reloj de pared, porque se puede medir al echar un
vistazo al reloj de pared al comenzar y al terminar una tarea.
Para filtrar los efectos de tales factores enormemente variables y difíciles de
cuantificar, en ocasiones se usa el tiempo de ejecución de CPU para definir el
rendimiento percibido por el usuario:
Rendimiento = 1/tiempo de ejecución de CPU
5
Rendimiento de Computadoras
ARQUITECTURA
Este concepto vuelve la evaluación mucho más manejable en casos que
conllevan métodos de evaluación analíticos, más que experimentales.
Tal visión no conduce a imprecisión alguna para tareas de cálculo intenso que
no involucran mucha I/O. Para tales tareas acotadas por CPU, la potencia de
procesamiento representa el problema.
Las tareas acotadas por I/O serán mal atendidas si sólo se toma en cuenta el
tiempo de ejecución de CPU. Para un sistema balanceado sin problemas, no se
erraría demasiado si se considera sólo el tiempo de ejecución de CPU en la
evaluación del rendimiento.
6
Rendimiento de Computadoras
ARQUITECTURA
Observe que el equilibrio del sistema es esencial. Si uno sustituye el
procesador de una máquina con un modelo que ofrece el doble de
rendimiento, ello no duplicará el rendimiento global del sistema a menos que
se realicen mejoras correspondientes en otras partes del sistema (memoria,
bus del sistema, I/O, etc.).
Duplicar el rendimiento del procesador no significa sustituir un procesador de
x GHz con uno de 2x GHz;
Cuando uno compara dos máquinas M1 y M2, la noción de rendimiento
relativo entra en juego.
(rendimiento de M1)/(rendimiento de M2)
= aceleración de M1 sobre M2
= (tiempo de ejecución de M2)/(tiempo de ejecución de M1)
7
Rendimiento de Computadoras
ARQUITECTURA
La medición de rendimiento comparativo como 1.5 o 0.8, indica que la
máquina M1 ofrece x veces el rendimiento, o es x veces más rápido que la
máquina M2.
Cuando x > 1, el rendimiento relativo se puede expresar en una de dos
formas equivalentes:
M1 es x veces más rápido que M2 (por ejemplo, 1.5 veces más
rápida)
M1 es 100(x - 1)% más rápida que M2 (por ejemplo, 50% más
rápida).
Una máquina que es 200% más rápida no es el doble de rápida sino tres
veces más rápida. De manera más general: y% más rápido significa 1 +
y/100 veces más rápida.
8
Rendimiento de Computadoras
ARQUITECTURA
Cada vez que se corre un programa específico, se ejecuta un número de
instrucciones de máquina. Con frecuencia, este número es diferente de una
corrida a otra, pero suponga que se conoce el número promedio de
instrucciones que se ejecutan durante muchas corridas del programa. Observe
que ese número puede tener poca relación con el número de instrucciones en
el código del programa.
Esto último es el contador de instrucción estática, mientras que aquí se está
interesado en el contador de instrucción dinámica, que usualmente es mucho
mayor que el contador estático debido a los ciclos y llamadas repetidas a
ciertos procedimientos.
La ejecución de cada instrucción toma cierto número de ciclos de reloj. De
nuevo, el número es diferente para varias instrucciones y de hecho puede
depender no sólo de la instrucción sino también del contexto (las instrucciones
que se ejecutan antes y después de una instrucción específica).
9
Rendimiento de Computadoras
ARQUITECTURA
Suponer que también se tiene un valor promedio para este parámetro.
Finalmente, cada ciclo de reloj representa una duración fija de tiempo.
Por ejemplo, el tiempo del ciclo de un reloj de 2 GHz es de 0.5 ns.
El producto de estos tres factores produce una estimación del tiempo de
ejecución de CPU para el programa:
tiempo de ejecución de CPU = instrucciones × (ciclos por instrucción) ×
(segundos por ciclo)
= instrucciones × CPI/(tasa de reloj)
donde CPI significa “ciclos por instrucción” y la tasa de reloj, expresada en
ciclos por segundo, es el inverso de “segundos por ciclo”.
El contador de instrucción de los tres parámetros, CPI y tasa de reloj no son
completamente independientes, de modo que mejorar uno por un factor
10
Rendimiento de Computadoras
ARQUITECTURA
específico puede no conducir a una mejora global en el tiempo de ejecución
por el mismo factor.
La cuenta de instrucción depende de la arquitectura del conjunto de
instrucciones (cuáles instrucciones están disponibles) y cuán efectivamente
las usa el programador o compilador.
CPI depende de la arquitectura del conjunto de instrucciones y de la
organización del hardware.
La tasa de reloj depende de la organización de hardware y de la tecnología de
implementación.
11
Rendimiento de Computadoras
ARQUITECTURA
3. Mejora del rendimiento y ley de
Amdahl
Gene Amdahl, un arquitecto de las primeras computadoras IBM que después
fundó la compañía que lleva su nombre, formuló su famosa ley para señalar
algunas limitaciones del procesamiento paralelo. Él afirmó que los programas
contenían ciertos cálculos que eran inherentemente secuenciales y, por tanto,
no se podían acelerar mediante procesamiento paralelo.
Si f representa la fracción del tiempo de corrida de un programa debido a
tales cálculos no paralelizables, incluso suponiendo que el resto del programa
disfrute la aceleración perfecta de p cuando corre en p procesadores, la
aceleración global sería:
12
Rendimiento de Computadoras
ARQUITECTURA
El número 1 en el numerador representa el tiempo de corrida original del
programa y f + ( 1 − f )/p constituye el tiempo de ejecución mejorado del
programa con p procesadores.
Lo último es la suma del tiempo de ejecución para la fracción f no
paralelizable y la fracción restante 1 - f, que ahora corre p veces más rápido.
Observe que la aceleración s no puede superar p (aceleración lineal lograda
por f = 0) o 1/f (máxima aceleración para p = ∞).
13
Rendimiento de Computadoras
ARQUITECTURA
Para f = 0.05, nunca se podrá esperar lograr una aceleración mayor que 20,
sin importar cuántos procesadores se usen.
A pesar de su formulación original en términos de la aceleración que es
posible con p procesadores, la ley de Amdahl es mucho más general y se
puede aplicar a cualquier situación que no involucre cambios en el tiempo de
ejecución para una fracción f de un programa y mejora por un factor p (no
necesariamente un entero) para la parte restante.
Esta interpretación general sugiere que si se deja una parte de un programa
que represente una fracción f de su tiempo de ejecución invariable, ninguna
cantidad de mejora para la fracción restante 1 - f producirá una aceleración
mayor que 1/f.
Por ejemplo, si la aritmética de punto flotante representa 1/3 del tiempo de
ejecución de un programa y se mejora sólo la unidad de punto flotante (es
decir, f = 2/3), la aceleración global no puede superar 1.5, sin importar
cuánto más rápido se vuelva la aritmética de punto flotante.
14
Rendimiento de Computadoras
ARQUITECTURA
4 Medición del rendimiento contra
modelado
El método más seguro y confiable de evaluar el rendimiento es correr
programas reales de interés en máquinas candidatas y medir los tiempos de
ejecución o de CPU.
Se muestra un ejemplo con tres máquinas diferentes que se evalúan en seis
programas.
15
Rendimiento de Computadoras
ARQUITECTURA
Con base en los datos de evaluación que se muestran, la máquina 3
claramente queda a la cabeza porque tiene el tiempo de ejecución más corto
para los seis programas.
El resultado no es tan claro, como es el caso entre las máquinas 1 y 2. La
máquina 1 es más rápida que la máquina 2 para dos de los programas y más
lenta para los otros cuatro. Si tuviese que elegir entre las máquinas 1 y 2 (por
decir, porque la máquina 3 es mucho más cara o no satisface algún otro
requisito importante), podría agregar pesos a los programas y elegir la
máquina para que la suma ponderada de tiempos de ejecución sea más
pequeña.
El peso para un programa podría ser el número de veces que se ejecuta por
mes (con base en datos recopilados o una predicción). Si, por ejemplo, los
seis programas se ejecutan el mismo número de veces, y, por tanto, tienen
pesos iguales, la máquina 2 tendría una ligera ventaja sobre la máquina 1.
16
Rendimiento de Computadoras
ARQUITECTURA
Si, por otra parte, los programas B o E constituyen la mayor parte de la carga
de trabajo, la máquina 1 probablemente prevalecerá.
La experimentación con programas reales en máquinas reales no siempre es
factible o económicamente viable.
En tales casos, la evaluación puede basarse en programas de prueba
(benchmarking) o en modelado analítico.
Benchmarking
Los benchmarks son programas reales o sintéticos que se seleccionan o
diseñan para evaluación comparativa del rendimiento de una máquina.
Una suite benchmark representa una colección de tales programas que tiene
la intención de representar toda clase de aplicaciones y hacer fracasar
cualquier intento por diseñar hardware que tendría buen desempeño en un
17
Rendimiento de Computadoras
ARQUITECTURA
programa benchmark específico más limitado (a esto último se le conoce
como diseño de benchmarks).
Los resultados del benchmarking sólo son relevantes para el usuario si los
programas en la suite recuerdan los programas que el usuario correrá.
Los benchmarks facilitan la comparación a través de diferentes plataformas y
clases de computadoras. También hacen posible que los vendedores de
computadoras y empresas independientes evalúen muchas máquinas antes de
su entrada al mercado y publicar los resultados del benchmarking para
beneficio de los usuarios. De esta forma, el usuario no necesitará realizar
benchmarking.
18
Rendimiento de Computadoras
ARQUITECTURA
Estimación de rendimiento
Es posible estimar el rendimiento de máquina sin hacer uso de observación
directa del comportamiento de programas reales o benchmarks ejecutados en
hardware real.
Los métodos varían desde las estimaciones simplistas hasta el uso de modelos
muy detallados que capturan los efectos de las características del diseño en
hardware y software.
Los modelos de rendimiento son de dos tipos: Modelos analíticos y modelos de
simulación.
Los primeros usan formulaciones matemáticas para relacionar el rendimiento
con algunos parámetros claves, observables y cuantificables del sistema o la
aplicación.
Los segundos básicamente imitan el comportamiento del sistema, con
frecuencia a un nivel de abstracción superior para conservar bajo observación
el tamaño del modelo y su tiempo de procesamiento.
19
Rendimiento de Computadoras
ARQUITECTURA
Los resultados obtenidos por cualquier modelo sólo son tan buenos como la
confiabilidad del modelo para representar capacidades, limitaciones e
interacciones del mundo real.
Es un error pensar que un modelo más detallado necesariamente ofrece una
estimación de rendimiento más precisa. De hecho, la complejidad del modelo
a veces oculta la comprensión y, por, lo tanto conduce a una incapacidad para
ver cómo el efecto de la imprecisión en la estimación de los parámetros del
modelo puede afectar los resultados finales.
El modelo de estimación de rendimiento más simple es aquel que produce el
rendimiento pico del sistema, se denomina así porque representa el nivel de
rendimiento absoluto más elevado que uno puede esperar extraer del sistema.
El rendimiento pico de una computadora es como la rapidez máxima de un
automóvil y puede ser tan insignificante como un coeficiente de mérito para
propósitos de comparación.
20
Rendimiento de Computadoras
ARQUITECTURA
Con frecuencia, el rendimiento pico se expresa en unidades de instrucciones
por segundo o IPS, y se prefieren MIPS y GIPS para mantener los números
pequeños.
La ventaja del rendimiento pico es que es fácil de determinar y notificar. Para
aplicaciones científicas y de ingeniería que involucran principalmente cálculos
en punto flotante, se usan como unidad las operaciones de punto flotante por
segundo (FLOPS), de nuevo con megaflops (MFLOPS) y gigaflops (GFLOPS)
como los favoritos.
21
Rendimiento de Computadoras
ARQUITECTURA
5 Búsqueda de mayor rendimiento
El estado de potencia computacional disponible a la vuelta del siglo xxi se
puede resumir del modo siguiente:
Gigaflops en las computadoras de escritorio.
Teraflops en el centro de supercomputadoras.
Petaflops en la mesa de dibujo.
Dado el crecimiento exponencial en el rendimiento de computadoras, en 1015 años se atestiguará un cambio de G, T y P hacia T, P y E . A través de los
años, lograr hitos de rendimiento, como teraflops y petaflos, ha sido una de
las principales fuerzas conductoras en la arquitectura y tecnología de
computadoras.
22
Rendimiento de Computadoras
ARQUITECTURA
Para asegurar que el progreso en el rendimiento de supercomputadoras no se
frena por el alto costo de investigación y desarrollo de tales máquinas, el
Departamento de Energía de Estados Unidos patrocina el programa
23
Rendimiento de Computadoras
ARQUITECTURA
Accelerated Strategic Computing Initiative (ASCI, Iniciativa de Computación
Estratégica Acelerada), descrito como la Advanced Simulation and Computing
Initiative (Iniciativa de Simulación y Computación Avanzada), que tiene como
meta el desarrollo de supercomputadoras que marquen límites del
rendimiento: de 1 TFLOPS en 1997 a 100 TFLOPS en 2003. Aun cuando estos
números corresponden a rendimiento pico, existe esperanza de que los
aumentos en la potencia computacional pico significarán avances
impresionantes en rendimiento sostenido para aplicaciones reales.
24
Rendimiento de Computadoras
ARQUITECTURA
25
Rendimiento de Computadoras
ARQUITECTURA
En lo futuro se espera que el rendimiento tanto de microprocesadores como
de supercomputadoras crezca al ritmo actual.
Sin embargo, más allá de ello, el panorama es mucho menos claro. El
problema es que se está llegando a ciertos límites físicos fundamentales que
puede ser difícil, o incluso imposible, de superar.
Una preocupación es que la reducción del tamaño característico de los
circuitos integrados, que es un importante contribuyente a las mejorías en
rapidez, se está acercando cada vez más a dimensiones atómicas.
Otro conflicto es que la rapidez de la propagación de señal en los conectores
entre elementos de chip es inherentemente limitada; en la actualidad es una
fracción de la rapidez de la luz y nunca podrá superar la última
(aproximadamente 30 cm/ns).
26
Rendimiento de Computadoras
ARQUITECTURA
Por ejemplo, si un chip de memoria está a 3 cm del chip procesador, nunca se
podrá esperar enviar datos de uno al otro en un tiempo más corto que 0.1 ns.
En consecuencia, es necesario más trabajo en técnicas arquitectónicas que
obvien la necesidad de frecuente comunicación a larga distancia entre
elementos de circuito.
El procesamiento paralelo por sí mismo no resuelve el dilema de la “velocidad
de la luz”; los procesadores múltiples todavía necesitan comunicarse entre
ellos.
27
Download