Procesamiento Paralelo
Modelado anal´ıtico de programas paralelos
Javier Iparraguirre
Universidad Tecnol ´ogica Nacional, Facultad Regional Bah´ıa Blanca 11 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
• ¿C ´omo sabemos que aceleramos la ejecuci ´on?
• ¿C ´omo sabemos que es la mejor soluci ´on?
• ¿Hay una soluci ´on 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 del tiempo de ejecuci ´on
• En un algoritmo paralelo el tiempo de ejecuci ´on depende del tama ˜no del problema, la cantidad de procesadores y las comunicaciones
• Las m ´etricas son fundamentales a la hora de evaluar desempe ˜no en m ´aquinas paralelas
• Hoy vamos a ver las m ´as usadas
Antes de ver m ´etricas...
• Dado un algoritmo en particular
• Necesitamos dos implementaciones (una serie y una paralela) para definir m ´etricas
• En la pr ´actica no siempre contamos con las dos implementaciones
• En la literatura siempre se supone que tenemos las dos implementaciones para definir m ´etricas
Tiempos
• Ts tiempo de ejecuci ´on de un programa en serie
• Tp tiempo de ejecuci ´on de un programa paralelo
• Ambos tiempos se miden desde que se lanza al programa hasta que finaliza
• Ts se considera como la mejor implementaci ´on serie conocida para el algoritmo a estudiar
P ´erdidas totales (total overhead)
To = p ∗ Tp − Ts
• Esta m ´etirca apunta a cuantificar los costos de las comunicaciones o sincronizaciones
• p es el numero de procesadores
• Idealmente To = 0
Speedup
S = Ts/Tp
• Indica cuanto hemos aumentado el desempe ˜no
• El valor de S va desde 1 hasta p
• Cuando decimos que se acelera una aplicaci ´on en 10x se refiere al speedup
Eficiencia
E = S/p
• Es una medida de la fracci ´on del tiempo en que los procesadores son usados efectivamente
• El valor de E va de 0 a 1
• En t ´erminos pr ´acticos, 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 el problema
• Elcosto ´optimo es el que crece como el algoritmo serie m ´as r ´apido conocido
Granularidad y desempe ˜no
• Si agregamos procesadores, aumenta la probabilidad de tener p ´erdidas por comunicacinoes
• A mayor granularidad, m ´as procesadores en juego
• Este es un factor a tener en cuenta en cualquier implementaci ´on
• No hay reglas exactas, en cada implementaci ´on particular hay que buscar un compromiso entre granularidad y desempe ˜no
Ejemplo granularidad
Escalabilidad
• Supongamos que tenemos una implementaci ´on de detecci ´on de bordes de una imagen que funciona aceptablemente 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 implementaci ´on de detecci ´on de bordes de una imagen que funciona aceptablemente con 8 procesadores
• ¿Funciona bien con 32?
• ¿Funciona bien con 256?
• ¿Funciona bien con 1024?
• Este es el concepto de escalabilidad
Ejemplo escalabilidad (cantidad procesadores
constante)
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
An ´alis asint ´otico de algoritmos paralelos
• Consideremos el problema de ordenar una lista de n elementos
• El algoritmo serie m ´as r ´apido conocido es de orden O (n log n)
• Miremos lo que indican las m ´etricas para 4 implementaciones paralelas del algoritmo
• ¿Cu ´al es el mejor? ¿El m ´as r ´apido?
Cuatro implementaciones paralelas del mismo
problema
Observaciones
• A1 es el m ´as r ´apido (fila Tp), pero demanda n * n procesadores (fila p)
• Si vemos la eficiencia, podemos decir que A2 y A4 son los mejores
• Si vemos el costo (fila p Tp) podemos decir que A2 y A4 son ´optimos seg ´un el costo
Ley de Amdahl
• Da la idea del m ´aximo a mejorar de un sistema si solo una porci ´on del mismo es acelerado
• En procesamiento paralelo da la idea del m ´aximo te ´orico de una implementaci ´on
• Dada una fracci ´on mejorada (Fmej) a un speedup de la fracci ´on (Fmej)
SpeedupAML = Tmejoras/Tsinmejoras
SpeedupAML = 1/((1 − Fmej) + (Fmej/Smej))
Ejemplo Ley Amdahl
Resumiendo
• En algoritmos paralelos las m ´etricas son importantes
• Hay varias m ´etricas a tener en cuenta
• Dependiendo de cual sea la m ´etrica elegida, se puede evaluar cu ´al es la mejor implementaci ´on
¡Muchas gracias!
¿Preguntas?
jiparraguirre@frbb.utn.edu.ar
Referencias
• A. Grama, G. Karypis, V. Kumar, A. Gupta. Introduction to Parallel Computing (2nd Edition). Addison Wesley, 2003.
• J. L. Hennessy, D. A. Patterson. Computer Architecture: A Quantitative Approach (4th Edition). Morgan Kaufmann, 2006.