Sie sind auf Seite 1von 15

Arquitectura de Computadores II Clase #9

Facultad de Ingeniera Universidad de la Repblica

Instituto de Computacin Curso 2010

Veremos
Rendimiento

Rendimiento (Performance)
Ver a travs de la niebla del marketing Tomar opciones inteligentes Entender el problema/motivacin
Por qu algunos programas se comportan mejor en determinado hardware y no en otro? Qu factores del rendimiento de un sistema dependen del hardware?
(ejemplo: se necesita una nueva mquina, o un nuevo sistema operativo?)

Cmo afecta el set de instrucciones al rendimiento? Y la organizacin?

Cul es mejor?
Plane Boeing 747 DC to Paris 6.5 hours Speed 610 mph Passengers 470 Throughput (pmph) 286,700

Concorde

3 hours

1350 mph

132

178,200

Tiempo de ejecucin de una tarea


Tiempo de Ejecucin, tiempo de respuesta, latencia

Tareas por da, hora, semana, seg, ns


Throughput

Rendimiento del Computador: TIEMPO


Tiempo de ejecucin o respuesta (latencia)
Cunto tiempo lleva ejecutar un trabajo? Cunto hay que esperar por el resultado de una consulta a la base de datos?

Throughput
Cuntos trabajos pueden ejecutarse a la vez? Cul es el tiempo de ejecucin total de varias tareas? Cuntos trabajos terminan por unidad de tiempo?

Preguntas tpicas
Cunto se mejora si agregamos un procesador al servidor? Qu mejora se obtiene agregando una nueva mquina?

MIPS
MIPS (millones de instrucciones por segundo) MIPS=Recuento de Instrucciones/(Tiempo_Ejec x 10^6) Ejemplo
Dos diferentes compiladores se prueban en una mquina de 100 MHz con tres clases de instrucciones A, B, y C, que requieren uno, dos y tres ciclos, respectivamente. Ambos compiladores producen cdigo para un programa que al correrse provoca la ejecucin de:
Compilador 1: 5 millones de instrucciones A, 1 milln de B y 1 milln de C Compilador 2: 10 millones de instrucciones A, 1 milln de B y 1 milln de C

Cual ejecuta ms rpido? Cual es mejor de acuerdo a los MIPS?

Tiempo de Ejecucin
Tiempo transcurrido
Mide todo
Accesos a memoria y disco, E/S, etc

Una medida til, pero difcil de usar para comparar sistemas

Tiempo de CPU
No cuenta E/S, o el tiempo que se emplea en ejecutar otros programas (en sistemas multitarea) Se puede dividir en tiempo del sistema y tiempo de usuario

Definicin de Performance
Performance: unidades de ejecucin por unidad de tiempo
Ms grande es mejor

Performance(x) = 1/ Execution_time(x) "X es n veces ms rpido que Y" significa


ExTime(Y) --------ExTime(X) Performance(X) -------------Performance(Y)

n =

Ciclos de Reloj
Tiempo discreto en ticks de reloj:
time

Tiempo de ciclo = tiempo entre ticks = perodo (seg/ciclo) Frecuencia del reloj (ciclos / seg)
(1 Hz = 1 ciclo/seg ) Un reloj de 200 Mhz tiene un perodo de:
20010 1 6 ciclo seg 1 = 108 seg/ciclo = 5 10-9 seg = 5 nanosegs/ciclo 2

Perodo constante => #ciclos de reloj es una medida alternativa para el tiempo de ejecucin Tiempo de CPU = #ciclos perodo #ciclos Tiempo de CPU = frecuencia

Ecuacin de performance de CPU


Tiempo de CPU =#ciclos perodo #ciclos Tiempo de CPU =#instrucciones perodo #instrucciones
Tiempo x TiempoCPU CPU= = Segundos Segundos = = Instrucciones Instrucciones x x Ciclos Ciclos x Segundos Segundos Programa Programa Instrucciones Ciclo Programa Programa Instrucciones Ciclo

Identificamos tres factores que afectan la performance


CPI: # ciclos / # instrucciones Recuento de instrucciones: # de instrucciones del programa Frecuencia (o perodo): # de ciclos por segundo

Un error habitual es considerar que uno o dos de estos factores son determinantes de la performance
Caso tpico: frecuencia de reloj MIPS = Frecuencia del Reloj / (CPI x 10^6)

Aspectos de la Performance de la CPU


Recuento Inst Programa Compilador Set de Inst. Organizacin Tecnologa X X X (X) X X X X CPI Ciclo de Reloj

Ciclos por Instruccin


En un set de n (categoras de) instrucciones

#ciclos j #ocurrencias j #ocurrencias j= 1 j= 1 j n #ciclos j #ocurrencias j #ciclos CPI = = #instrucciones j =1 #ocurrencias j #instrucciones #ciclos = #ciclos j=
Frecuencia de Instrucciones
n

CPI = CPI j F j , siendo CPI j =


j= 1

#ciclos j #ocurrencias j , F j= #ocurrencias j #instrucciones

CPIj debe medirse, ya que la referencia tcnica no tiene en cuenta, por ejemplo, misses de cache o retardos en pipeline.

Ejemplo: Clculo de CPI


Op ALU Load Store Branch Freq 50% 20% 10% 20% CPI 1 2 2 2

(1/2)

Fj*CPIj (% Tiempo) .5 .4 .2 .4 1.5 (33%) (27%) (13%) (27%)

Mezcla Tpica

Ejemplo: Impacto del Branch Stall


Se asume CPI = 1.0 ignorando bifurcaciones (ideal) En realidad se produce un stall de 3 ciclos por bifurcacin
Si 30% bifurcaciones, stall 3 ciclos en 30%
Op Otras Bifurc. Freq 70% 30% Cycles Fj x CPIj (% Tiempo) 1 4 .7 1.2 (37%) (63%)

CPI real= 1.9

La mquina real es 1/1.9 = 0.52 veces ms rpida (o sea el doble de lenta!)

Ley de Amdahl

(1/3)

Aceleracin (Speedup) debida a mejora E: ExTime sin E Performance con E Speedup(E) = ------------= ------------------ExTime con E Performance sin E

La aceleracin global depende no slo del factor de aceleracin de la mejora, sino tambin del tiempo que se aprovecha esa mejora

Ejemplo:
Consideramos un programa que se ejecuta en 100 segs; la multiplicacin es responsable de 80 segs. del total. Cunto debemos mejorar la multiplicacin para que el programa se ejecute 4 veces ms rpido?

Principio: mejorar el caso ms comn

Ley de Amdahl

(2/3)

T old =T no afectadoT afectado old T new =T no afectadoT afectado new T afectado old T afectado old T new =T no afectado , donde speedup afectado = speedup afectado T afectado new Fraccinafectada T old T new =1 Fraccin afectada T old speedup afectado speeduptotal = T old T new = 1

1 Fraccinafectada speedup

Fraccin afectada
afectado

Observacin: Fraccinafectada es con respecto a Told

Ley de Amdahl
speedup total = T old T new =

(3/3)

1 Fraccin afectada speedup

Fraccin afectada
afectado

Ejemplo:
Instrucciones de Punto Flotante mejorada para correr a 2X; pero nicamente 10% del tiempo se consume en instrucciones de Punto Flotante

Speeduptotal

1 0.9 + 0.1 / 2

= 1.053

Mtricas de Performance
Kernels
Extractos clave de programas reales

Synthetic benchmarks
Filosofa similar a kernels, intentan promediar frecuencia de operaciones de un gran conjunto de programas tpicos
Whetstone (numrico), Dhrystone (E/S datos )

Fcil de estandarizar, pero


Pueden ser violados

Programas reales
Se usan programas que representan una carga de trabajo tpica, para determinada clase de aplicaciones
Compiladores de C, procesadores de texto, herramientas CAD

Benchmarks
Benchmark Suites
Combinaciones de benchmarks, enfocados en algn aspecto relevante: SPECCPU2000, SPECint1997, SPECfp1992, SPECWeb, SPECSFS, TPC-C, etc.

SPEC (System Performance Evaluation Cooperative)


Las compaas se ponen de acuerdo en un conjunto de programas y entradas reales An pueden ser violados Buen indicador de performance (y tecnologa de compiladores)

SPEC89, 92, 95, 2000, 2006 Los programas varan entre generaciones de SPEC Ms informacin en http://www.spec.org/

SPEC CPU2000: benchmarks de enteros

SPEC CPU2000: benchmarks de punto flotante

La CPU no es todo otros benchmarks SPEC


SPECint y SPECfp miden tareas de computacin intensiva, enfatizando los siguientes elementos de la arquitectura:
CPU Arquitectura de memoria Compiladores

NO atacan otros elementos tales como el sistema operativo, la red, los grficos o el subsistema de E/S. Existen otros benchmarks, por ejemplo para:
Graphics and Workstation Performance High Performance Computing, OpenMP, MPI Java Client/Server Mail Servers Network File System Web Servers

Reportes de performance
Los reportes deben permitir reproducir las mediciones de performance

Resumen de performance
Media Aritmtica basada en el tiempo de ejecucin:

(1/3)

Interesa tener UN nmero que resuma la performance de un sistema

(Ti)/n Ti es el tiempo de ejecucin del i-simo de los n programas que componen la carga de trabajo

Pregunta: cual es la mezcla de programas mas adecuada para medir la performance? Pesan todos lo mismo?

Resumen de performance
Media Aritmtica ponderada
(Wi*Ti)

(2/3)

Pero, cmo se eligen los pesos? SPEC benchmarks: SpecRatio = Tiempo de Ejecucin Normalizado con respecto a una mquina cannica, (Y corre n veces ms rpido que X)
En cociente de ratios de dos sistemas NO influye la referencia!

Para promediar razones (como SpecRatio) se usa la Media Geomtrica:


( muestraj)1/n = ( Tj / Nj )1/n La media geomtrica de las razones Tj / Nj es igual a la razn entre las medias geomtricas de los Tj y los Nj La razn entre las medias geomtricas es igual a la media geomtrica de las razones entre muestras una a una

Resumen de performance
Sistema A Programa P1 (segs) Programa P2 (segs) Tiempo total (segs) Media aritmtica: W(1) Media aritmtica: W(2) Media aritmtica: W(3) 1 1000 1001 500.5 91.909 1.999 Sistema B Sistema 10 100 110 55 18.19 10.09

(3/3)

C W(1) W(2) 20 0.5 0.909 20 0.5 0.091 40 20 20 20

W(1) pesa igual P1 y P2 W(2) peso inversamente proporcional a Tiempo de Ejecucin en B W(3) peso inversamente proporcional a Tiempo de Ejecucin en A Comparar resultados de diferentes medias:

Programa P1 Programa P2 Media aritmtica Media geomtrica Tiempo total

Normalizado a A Normalizado a B Normalizado a C A B C A B C A B 1 10 20 0.1 1 2 0.05 0.5 1 0.1 0.02 10 1 0.2 50 5 1 5.05 10.01 5.05 1 1.1 25.025 2.75 1 1 0.632 1 1 0.632 1.58114 1.581 1 0.110 0.040 9.1 1 0.364 25.025 2.75

Evaluacin de Performance
Para bien o para mal, los benchmarks son tomados en cuenta..... El diseo se debe orientar a mejorar la performance de las cargas de trabajo (programas) reales, y no solamente los programas que ayudan a vender! Para una arquitectura dada la mejora de la performance viene de:
Incremento de la frecuencia de reloj (sin afectar los CPI!) Mejora en la organizacin del procesador para baja los CPI Mejora en los compiladores para bajar CPI y/o recuento de instrucciones

Das könnte Ihnen auch gefallen