Procesamiento Paralelo - Modelado analítico de programas ... Procesamiento Paralelo Modelado...

Post on 05-Oct-2020

3 views 0 download

Transcript of Procesamiento Paralelo - Modelado analítico de programas ... Procesamiento Paralelo Modelado...

Procesamiento ParaleloModelado analıtico de programas paralelos

Javier Iparraguirre

Universidad Tecnologica Nacional, Facultad Regional Bahıa Blanca11 de Abril 461, Bahıa Blanca, Argentina

jiparraguirre@frbb.utn.edu.ar

http://www.frbb.utn.edu.ar/hpc/

27 de marzo de 2016

Algunas preguntas

• Una vez que tenemos el programa paralelo• ¿Como sabemos que aceleramos la ejecucion?• ¿Como sabemos que es la mejor solucion?• ¿Hay una solucion ideal?• ¿Podemos decir que usamos los recursos de la mejor

manera posible?

Ocho procesadores

A partir del caso planteado

• En un algoritmo secuencial se puede evaluar a partir deltiempo de ejecucion

• En un algoritmo paralelo el tiempo de ejecucion dependedel tamano del problema, la cantidad de procesadores ylas comunicaciones

• Las metricas son fundamentales a la hora de evaluardesempeno en maquinas paralelas

• Hoy vamos a ver las mas usadas

Antes de ver metricas...

• Dado un algoritmo en particular• Necesitamos dos implementaciones (una serie y una

paralela) para definir metricas• En la practica no siempre contamos con las dos

implementaciones• En la literatura siempre se supone que tenemos las dos

implementaciones para definir metricas

Tiempos

• Ts tiempo de ejecucion de un programa en serie• Tp tiempo de ejecucion de un programa paralelo• Ambos tiempos se miden desde que se lanza al programa

hasta que finaliza• Ts se considera como la mejor implementacion serie

conocida para el algoritmo a estudiar

Perdidas totales (total overhead)

To = p ∗ Tp − Ts

• Esta metirca apunta a cuantificar los costos de lascomunicaciones o sincronizaciones

• p es el numero de procesadores• Idealmente To = 0

Speedup

S = Ts/Tp

• Indica cuanto hemos aumentado el desempeno• El valor de S va desde 1 hasta p• Cuando decimos que se acelera una aplicacion en 10x se

refiere al speedup

Eficiencia

E = S/p

• Es una medida de la fraccion del tiempo en que losprocesadores son usados efectivamente

• El valor de E va de 0 a 1• En terminos practicos, nos da una idea de la calidad del

uso de la arquitectura que disponemos

Costo

C = p ∗ Tp

• Refleja el tiempo que cada procesador usa para resolver elproblema

• El costo optimo es el que crece como el algoritmo seriemas rapido conocido

Granularidad y desempeno

• Si agregamos procesadores, aumenta la probabilidad detener perdidas por comunicacinoes

• A mayor granularidad, mas procesadores en juego• Este es un factor a tener en cuenta en cualquier

implementacion• No hay reglas exactas, en cada implementacion particular

hay que buscar un compromiso entre granularidad ydesempeno

Ejemplo granularidad

Escalabilidad

• Supongamos que tenemos una implementacion dedeteccion de bordes de una imagen que funcionaaceptablemente con 8 procesadores

• ¿Funciona bien con 32?• ¿Funciona bien con 256?• ¿Funciona bien con 1024?

• Este es el concepto de escalabilidad

Escalabilidad

• Supongamos que tenemos una implementacion dedeteccion de bordes de una imagen que funcionaaceptablemente con 8 procesadores

• ¿Funciona bien con 32?• ¿Funciona bien con 256?• ¿Funciona bien con 1024?• Este es el concepto de escalabilidad

Ejemplo escalabilidad (cantidad procesadoresconstante)

Ejemplo real de Speedup

Ejemplo real de Eficiencia

El la realidad...

• Es muy difıcil poder mantener speedup lineal• Es muy difıcil poder mantener eficiencia cercana a 1• Siempre hay que encontrar un punto de compromiso

Isoeficiencia

Analis asintotico de algoritmos paralelos

• Consideremos el problema de ordenar una lista de nelementos

• El algoritmo serie mas rapido conocido es de orden O (nlog n)

• Miremos lo que indican las metricas para 4implementaciones paralelas del algoritmo

• ¿Cual es el mejor? ¿El mas rapido?

Cuatro implementaciones paralelas del mismoproblema

Observaciones

• A1 es el mas rapido (fila Tp), pero demanda n * nprocesadores (fila p)

• Si vemos la eficiencia, podemos decir que A2 y A4 son losmejores

• Si vemos el costo (fila p Tp) podemos decir que A2 y A4son optimos segun el costo

Ley de Amdahl

• Da la idea del maximo a mejorar de un sistema si solo unaporcion del mismo es acelerado

• En procesamiento paralelo da la idea del maximo teoricode una implementacion

• Dada una fraccion mejorada (Fmej) a un speedup de lafraccion (Fmej)

SpeedupAML = Tmejoras/Tsinmejoras

SpeedupAML = 1/((1 − Fmej) + (Fmej/Smej))

Ejemplo Ley Amdahl

Resumiendo

• En algoritmos paralelos las metricas son importantes• Hay varias metricas a tener en cuenta• Dependiendo de cual sea la metrica elegida, se puede

evaluar cual es la mejor implementacion

¡Muchas gracias!

¿Preguntas?jiparraguirre@frbb.utn.edu.ar

Referencias

• A. Grama, G. Karypis, V. Kumar, A. Gupta. Introduction toParallel Computing (2nd Edition). Addison Wesley, 2003.

• J. L. Hennessy, D. A. Patterson. Computer Architecture: AQuantitative Approach (4th Edition). Morgan Kaufmann,2006.