You are on page 1of 41

Analisis de Rendimiento

Captulo 7

Metas
Predecir el rendimiento de programas paralelos Entender los obstculos que impiden mejor rendimiento

Bosquejo
Formula General para speedup La Ley de Amdahl La Ley de Gustafson-Barsis La Mtrica de Karp-Flatt La Mtrica de Isoeficiencia

Speedup
Speedup = ts /tp donde ts es el tiempo que se requiere para ejecutar el programa secuencialmente y tp es el tiempo que se requiere para ejecutar el programa en paralelo Quinn denota speedup por (n,p) donde n es el tamao del problema y p es el nmero de procesos

Speedup (cont)
(n,p)p (n,p)=p si el problema se particiona perfectamente en p procesos iguales y no hay ningun gasto general (overhead) debido a, por ejemplo, comunicaciones, coordenaci de procesos, el costo de particionar, etc.

Los Componentes de Tiempo de Ejecutacin


Computaciones que tienen que hacer secuencialmente: (n) Computaciones que se pueden llevar a cabo en paralelo: (n) Operaciones de comunicaciones: (n,p)

Expresin para Speedup


ts = (n) + (n) tp = (n) + (n)/p + (n,p) Por lo tanto,
(n,p) ( (n) + (n))/( (n) + (n)/p + (n,p))

(n)/p
Aumentar el nmero de procesadores reduce el tiempo computacional

(n)/p

(n,p)
El tiempo de comunicaciones crece con la cantidad de procesadores

(n,p)

(n)/p + (n,p)
En algun momento el tiempo de comunicaciones para un problema de tamao fijo ser mayor que el tiempo computacional (n)/p + (n,p)

Speedup

Eficiencia
eficiencia = tS / (p*tp) donde p es el nmero de procesadores Ya que tp tS / p, tenemos que 0 eficiencia 1 Quinn denota eficiencia por (n,p)

Notemos que (n,p)=(n,p)/p

La Ley de Amdahl
(n,p) ( (n) + (n))/( (n) + (n)/p + (n,p)) ( (n) + (n))/( (n) + (n)/p ) Si f es la porcin de la computacin que es inherentemente secuencial, es decir que f= (n)/( (n) + (n)), entonces 1/(f+(1-f)/p) Notemos que 1/f

Ejemplo 1
Hay un programa secuencial que pasa 90% de su tiempo dentro de funciones que se pueden paralelizar. Hay que hacer el otro 10% en un solo procesador. Vale la pena implantar una versin paralela si hay 8 procesadores disponibles?

Ejemplo 1 - Contestacin
Si,
1/(f+(1-f)/p)=1/(.1 + (1-.1)/8) = 4.7

El mximo speedup posible es lim p 1/(.1 + (1-.1)/p) = 10

Ejemplo 2
Un programa de animacin genera una pelcula cuadro por cuadro. Cada cuadro se puede generar independemente y se almacena en su propio archivo. Si toma 99 segundos para producir un cuadro y un segundo para almacenarlo, cuanto speedup se puede lograr produciendo la pelcula con 100 procesadores?

Limitaciones de la Ley de Amdahl


En el pasado se creia que fue un limite fatal al futuro de paralelismo. Sin embargo,
su demostracin tiene que ver con los pasos de un algortmo especfico y no toma en consideracin que otro algortmo con mas paralelismo podria existir. trata el tamao de problema como una constante, pero en la prctica la proporcin secuencial de un programa decrece con el tamao,

Otras Limitaciones
Ignora (n,p) Sobre estima el speedup que se puede lograr

El Efecto Amdahl
En la prctica, el tiempo de comunicacin (n,p) tiene complexidad menor que (n)/p (i.e., el tiempo para la parte paralela) Cuando n crece, (n)/p domina a (n,p) Cuando n crece y el nmero de procesadores se fija, La proporcin secuencial decrece Speedup crece

Illustration of Amdahl Effect


Speedup n = 10,000

n = 1,000

n = 100 Processors

Resumen de la Ley de Amdahl


Trata tamao como constante Demuestra como el tiempo de ejecutacin decrece cuando el nmero de procesadores crece Profesionales en computacin paralela no creen que la ley de Amdahl limita el futuro de computacin paralela, como originalmente creian.

Otra Perspectiva
Muchas veces usamos computadoras mas rpidas para resolver problemas mas grandes o para mejorar la precisin. Vamos a tratar tiempo como una constante y permitir que el tamao de problema crece con la cantidad de procesadores.

La Ley de Gustafson-Barsis
( n) +(n) ( n, p ) ( n) +(n) / p

Sea s = (n)/((n)+ (n)/p) (La fraccin de tiempo en una computacin paralela para hacer operaciones inherentamente secuenciales). Entonces

p + (1 p) s

La Ley de Gustafson-Barsis
Implica que cualquier problema que es suficientemente grande puede beneficiarse de paralelismo. La Ley de Gustafson-Barsis predice scaled speedup

Ejemplo 3
Una aplicacin que se ejecuta en 10 procesadores dedica 3% del tiempo en cdigo secuencial. Cual es el speedup mximo?

Ejemplo 3-Contestacin
p + (1 p) s
Por lo tanto,
10 + (1 10)X0.03 = 9.73

Ejemplo 4
Cuanto es la fraccin mxima del tiempo de ejecutacin de un programa paralelo que se puede dedicar a cdigo secuencial si logra un speedup de 7 utilizando 8 procesadores?

Ejemplo 4 -Contestacin
p + (1 p) s
7 = 8+(1 8) s implica que s 0.14

Ejemplo 5
Un program paralelo que usa 32 procesadores pasa 5% de su tiempo ejecutando cdigo secuencial. Cuanto es el scaled speedup

La Metrica de Karp-Flatt
Las leyes de Amdahl y de GustafsonBarsis ignora (n,p) Por eso, puede sobre estimar speedup. Karp y Flatt han propuesto otra mtrica

La mtrica de Karp-Flatt (cont)


El tiempo de ejecutacin de un programa paralelo que se ejecuta en p procesadores es T(n,p) = (n) + (n)/p + (n,p) El tiempo de ejecutacin del programa secuencial es T(n,1) = (n) + (n) La fraccin secuencial experimentalmente determinada se define por e=((n) + (n,p))/ T(n,1)

La Mtrica Karp-Flatt (cont)


1 / 1 / p e= 11/ p

La fraccin secuencial experimentalmente determinada


Toma en consideracin el los gastos generales de paralelizar Detecta otras fuentes de overhead o ineficiencias que son ignoradas de los otros modelos
Una distribucin inbalanceada de trabajo Tiempo para sincronizar procesos Tiempo para incializar un proceso (startup time)

Example 1
p 2 3 4 5 6 7 8

1.8 2.5 3.1 3.6 4.0 4.4 4.7

What is the primary reason for speedup of only 4.7 on 8 CPUs? e 0.1 0.1 0.1 0.1 0.1 0.1 0.1

Since e is constant, large serial fraction is the primary reason.

Ejemplo 2
p 2 3 4 5 6 7 8

1.9 2.6 3.2 3.7 4.1 4.5 4.7

A que se debe que speedup es solamente 4.7 para p=8? e


0.070 0.075 0.080 0.085 0.090 0.095 0.100

La razn principal se debe a gastos generales ya que e est creciendo.

La Mtrica Isoeficiencia
Un sistema paralelo se define como un programa paralelo que se est ejecutando en una computadora paralela La escalabilidad de un sistema paralelo es una medida de su habilidad para mejorar rendimiento cuando se aumenta el nmero de procesadores es Un sistema escalable mantiene su eficiencia cuando se aumenta la cantidad de procesadores Isoeficiencia:Una manera para medir escalabilidad

Para Derivar la Relacin de Isoeficiencia


Determinar los gastos generales

To (n, p)= ( p 1) (n) + p (n, p)


Substituir gastos generales en la ecuacin de speedup
p (n) )) (n, p ) ( n )(+( n +( nn , p ) )+ ( T
0

Sustituir T(n,1) = (n) + (n). Presumir eficiencia constante.

T (n,1) CT0 (n, p )

Relacin de Isoeficiencia

Para Derivar la Relacin de Isoeficiencia (cont)


Para mantener el mismo nivel de eficiencia cuando crece la cantidad de procesadores, hay que aumentar n para que se cumpla

T ( n,1) CT 0 (n, p )

La Funcin de Escalabilidad
Supongamos que la relacin de isoeficiencia es n f(p) Sea M(n) la cantidad de memoria que se requiere para un problema de tamao n M(f(p))/p indica como el uso de memoria por procesador tiene que crecer para mantener la misma eficiencia M(f(p))/p se llama la funcin de escalabilidad

El Significado de la Funcin de Escalabilidad


Para matener la eficiencia cuando crece p, tenemos que aumentar n El tamao de problema mximo est limitado por la cantidad de memoria disponible, que es lineal en p La funcin de escalabilidad muestra como el uso de memoria por procesador tiene que crecer para mantener eficiencia Si la funcin de escalabilidad es constante, el sistema paralelo es perfectamente escalable

Interpreting Scalability Function


Cplogp Cannot maintain efficiency Memory Size Can maintain efficiency Clogp C Number of processors Memory needed per processor

Cp

You might also like