PDF de programación - clase #9 - Rendimiento - Arquitectura de Computadores II

Imágen de pdf clase #9 - Rendimiento - Arquitectura de Computadores II

clase #9 - Rendimiento - Arquitectura de Computadores IIgráfica de visualizaciones

Publicado el 13 de Octubre del 2020
425 visualizaciones desde el 13 de Octubre del 2020
943,0 KB
15 paginas
Creado hace 13a (09/09/2010)
Arquitectura de Computadores II

Clase #9

Facultad de Ingeniería
Universidad de la República

Instituto de Computación
Curso 2010

Veremos…

 Rendimiento





Rendimiento (Performance)

 Ver a través de la “niebla” del marketing
 Tomar opciones inteligentes
 Entender el problema/motivación

 ¿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 máquina, o un nuevo sistema

operativo?)

 ¿Cómo afecta el set de instrucciones al rendimiento? ¿Y la

organización?

¿Cuál es mejor?

Plane

DC to
Paris

Speed

Passengers

Throughput

(pmph)

Boeing 747

6.5 hours

610 mph

470

286,700

Concorde

3 hours

1350 mph

132

178,200

 Tiempo de ejecución de una tarea

 Tiempo de Ejecución, tiempo de respuesta, latencia

 Tareas por día, hora, semana, seg, ns …

 Throughput





Rendimiento del Computador:
TIEMPO

 Tiempo de ejecución o respuesta (latencia)

 ¿Cuánto tiempo lleva ejecutar un trabajo?

 ¿Cuánto hay que esperar por el resultado de una consulta a la

base de datos?

 Throughput

 ¿Cuántos trabajos pueden ejecutarse a la vez?

 ¿Cuál es el tiempo de ejecución total de varias tareas?

 ¿Cuántos trabajos terminan por unidad de tiempo?

 Preguntas típicas

 ¿Cuánto se mejora si agregamos un procesador al servidor?

 ¿Qué mejora se obtiene agregando una nueva máquina?

MIPS

 MIPS (millones de instrucciones por segundo)
 MIPS=Recuento de Instrucciones/(Tiempo_Ejec x 10^6)

 Ejemplo

 Dos diferentes compiladores se prueban en una máquina de 100 MHz

con tres clases de instrucciones A, B, y C, que requieren uno, dos y
tres ciclos, respectivamente. Ambos compiladores producen código
para un programa que al correrse provoca la ejecución de:

• Compilador 1: 5 millones de instrucciones A, 1 millón de B y 1 millón de C
• Compilador 2: 10 millones de instrucciones A, 1 millón de B y 1 millón de

C

 Cual ejecuta más rápido?
 Cual es “mejor” de acuerdo a los MIPS?





Tiempo de Ejecución

 Tiempo transcurrido

 Mide “todo”

• Accesos a memoria y disco, E/S, etc

 Una medida útil, pero difícil 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

Definición de Performance

 Performance: unidades de ejecución por unidad de tiempo

 Más grande es mejor

 Performance(x) = 1/ Execution_time(x)
 "X es n veces más rápido que Y" significa

ExTime(Y) Performance(X)

n = --------- =
--------------
ExTime(X) Performance(Y)





Ciclos de Reloj

 Tiempo discreto en “ticks” de reloj:

 Tiempo de ciclo = tiempo entre ticks = período (seg/ciclo)

time

 Frecuencia del reloj (ciclos / seg)

 (1 Hz = 1 ciclo/seg )
 Un reloj de 200 Mhz tiene un período de:



1

200×10 6ciclo

seg

=

1
2

×10−8 seg/ciclo = 5×10-9 seg = 5 nanosegs/ciclo

 Período constante => #ciclos de reloj es una medida

alternativa para el tiempo de ejecución

Tiempo de CPU=#ciclos× período

Tiempo de CPU=

#ciclos
frecuencia

Ecuación de performance de CPU

Tiempo de CPU=#ciclos× período

Tiempo de CPU=#instrucciones×

#ciclos
#instrucciones

× período

Tiempo CPU = Segundos = Instrucciones x Ciclos x Segundos
Tiempo CPU = Segundos = Instrucciones x Ciclos x Segundos

Programa
Programa

Programa Instrucciones Ciclo
Programa Instrucciones Ciclo

 Identificamos tres factores que afectan la performance

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

 Un error habitual es considerar que uno o dos de estos

factores son determinantes de la performance
 Caso típico: frecuencia de reloj
 MIPS = Frecuencia del Reloj / (CPI x 10^6)





Aspectos de la Performance de
la CPU

Recuento Inst


CPI

Ciclo de Reloj

Programa

Compilador

Set de Inst.

Organización

Tecnología

X

X

X

(X)

X

X

X

X

Ciclos por Instrucción

En un set de n (categorías de) instrucciones

n

#ciclos j=∑

#ciclos=∑
j=1
#ciclos
#instrucciones

CPI =

n #ciclos j
#ocurrencias j
j=1
n #ciclos j

#ocurrencias j

=∑
j =1

×#ocurrencias j

×

#ocurrencias j
#instrucciones

“Frecuencia de Instrucciones”

n

CPI =∑
j=1

CPI j× F j , siendo CPI j=

#ciclos j

#ocurrencias j

, F j=

#ocurrencias j
#instrucciones

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





Ejemplo: Cálculo de CPI (1/2)

Op

ALU
Load
Store
Branch


Freq CPI

50% 1
20% 2
10% 2
20% 2

Mezcla Típica

Fj*CPIj (% Tiempo)



(33%)
(27%)
(13%)
(27%)

.5
.4
.2
.4
1.5





Ejemplo:
Impacto del Branch Stall

 Se asume CPI = 1.0 ignorando bifurcaciones (ideal)
 En realidad se produce un “stall” de 3 ciclos por

bifurcación
 Si 30% bifurcaciones, “stall” 3 ciclos en 30%

 Op

 Otras
 Bifurc.

Freq

Cycles Fj x CPIj (% Tiempo)

70% 1
30% 4

.7
1.2

(37%)
(63%)

 CPI real= 1.9

 La máquina real es 1/1.9 = 0.52 veces “más rápida” (o

sea el doble de lenta!)

Ley de Amdahl (1/3)

 Aceleración (Speedup) debida a mejora E:
ExTime sin E Performance con E
Speedup(E) = ------------- = -------------------
ExTime con E Performance sin E

La aceleración global depende no sólo del factor de aceleración de la mejora, sino

también del tiempo que se aprovecha esa mejora

 Ejemplo:

 Consideramos un programa que se ejecuta en 100 segs; la multiplicación

es responsable de 80 segs. del total. ¿Cuánto debemos mejorar la
multiplicación para que el programa se ejecute 4 veces más rápido?

 Principio: mejorar el caso más común





Ley de Amdahl (2/3)

T old=T no afectadoT afectado old
T new =T no afectadoT afectado new
T afectado old
speedupafectado

T new =T no afectado

T new =1−FracciónafectadaT old

, donde speedupafectado=

T afectado old
T afectado new

Fracciónafectada T old
speedupafectado

speeduptotal=

T old
T new

1

=

1−Fracciónafectada

Fracciónafectada
speedupafectado

Observación: Fracciónafectada es con respecto a Told

Ley de Amdahl (3/3)

speeduptotal=

T old
T new

=

1

1−Fracción afectada

Fracción afectada
speedupafectado

 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









Métricas de Performance

 Kernels

 Extractos “clave” de programas reales

 Synthetic benchmarks

 Filosofía similar a kernels, intentan promediar frecuencia de

operaciones de un gran conjunto de programas típicos

• Whetstone (numérico), Dhrystone (E/S datos )

 Fácil de estandarizar, pero…

• Pueden ser “violados”

 Programas reales

 Se usan programas que representan una carga de trabajo

típica, para determinada clase de aplicaciones

• Compiladores de C, procesadores de texto, herramientas CAD

Benchmarks

 Benchmark Suites

 Combinaciones de benchmarks, enfocados en algún aspecto

relevante: SPECCPU2000, SPECint1997, SPECfp1992, SPECWeb,
SPECSFS, TPC-C, etc.

 SPEC (System Performance Evaluation Cooperative)

 Las compañías se ponen de acuerdo en un conjunto de programas y

entradas reales

 Aún pueden ser “violados”…
 Buen indicador de performance (y tecnología de compiladores)

 SPEC89, 92, 95, 2000, 2006
 Los programas varían entre generaciones de SPEC
 Más información 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 computación 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 gráficos 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 (1/3)

 Interesa tener UN número que resuma la performance de un

sistema

 Media Aritmética basada en el tiempo de ejecución:

 S (Ti)/n
 Ti es el tiempo de ejecución 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 (2/3)

 Media Aritmética ponderada

 S (Wi*Ti)

 Pero, cómo se eligen los pesos?

 SPEC benchmarks: SpecRatio = Tiempo de Ejecución Normalizado

con respecto a una “máquina canónica”, (Y corre n veces más
rápido que X)
 En cociente de ratios de dos sistemas NO influye la referencia!
 Para promediar razones (como SpecRatio) se usa la Media

Geométrica:
 ( P
 La media geométrica de las razones Tj / Nj es igual a la razón entre las

muestraj)1/n = P

( Tj / Nj )1/n

medias geométricas de los Tj y los Nj

 La razón entre las medias geométricas es igual a la media geométrica

de las razones entre muestras una a una





Resumen de performance (3/3)

Sistema A Sistema B Sistema C W(1) W(2)

Programa P1 (segs)
Programa P2 (segs)
Tiempo total (segs)
Media aritmética: W(1)
Media aritmética: W(2)
Media aritmética: W(3)

1
1000
1001
500.5
91.909
1.999

10
100
110
55
18.19
10.09

 W(1) pesa igual P1 y P2
 W(2) peso inversamente proporcional a Tiempo de Ejecución en B
 W(3) peso inversamente proporcional a Tiempo de Ejecución en A
  • Links de descarga
http://lwp-l.com/pdf18357

Comentarios de: clase #9 - Rendimiento - Arquitectura de Computadores II (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad