Title: SISTEMAS DISTRIBUIDOS Y PARALELOS
1 PROGRAMACIÓN PARALELA -2004-
2Medidas de Performance
- Aceleración
- Costo
- Eficiencia
- Escalabilidad
- Portabilidad
- GRANULARIDAD PARALELA
3Granularidad
Para habilitar el uso de paralelismo, es
necesario dividir la computación en tareas o
procesos. El tamaño de un proceso puede ser
descripto por su Granularidad TAMAÑO DE
COMPUTACIÓN ENTRE DOS PUNTOS CONSECUTIVOS DE
COMUNICACIÓN O SINCRONIZACIÓN
4Granularidad gruesa ?
Comunicación y sincronización
computo
Comunicación y sincronización
5Granularidad FINA ?
Comunicación y sincronización
computo
Comunicación y sincronización
computo
Comunicación y sincronización
computo
Comunicación
6Granularidad
Como métrica de Granularidad, se puede utilizar
una relación entre computación, comunicación
Granularidad Tcomp / Tcomm Aumentar la
granularidad Reduce los costos de creación de
procesos y comunicación entre procesos Reduce el
número de procesos concurrentes y cantidad de
paralelismo
7Granularidad
Granularidad Fina
Granularidad Gruesa
8ESCALABILIDAD
Escalabilidad de harware Es la capacidad de una
arquitectura, que al crecer en tamaño es capaz
de lograr mejoras de performance
Escalabilidad con tamaño de problema
fijo Analizar como varía Tpar y la Eficiencia
(costo secuencial vs. costo paralelo) al
incrementar el número de Procesadores Si
quiero mantener una eficiencia del 50, cuántos
procesadores debería utilizar? Hay que observar
que E puede decrementar al aumentar P! Hay que
observar que T puede incrementar si el modelo se
computación incluye potencias de P !
9ESCALABILIDAD
Las Computadoras paralelas son frecuentemente
utilizadas no solo para resolver más rápido
problemas de tamaño fijo, sino también resolver
problemas más grandes. Escalabilidad de
software Es la capacidad de un software, que al
crecer el tamaño del problema no decrementa su
performance
Tamaño del problema tamaño del input o Número
de pasos de cómputo en el mejor alg. Secuencial.
10PORTABILIDAD
11PERFORMANCE
- Es deseable escribir e implementar programas que
satisfagan requerimientos de correctitud y
performance. - Performance es un concepto complejo y
multifacético - Requerimientos cruciales de la computación
paralela son - La velocidad de ejecución y eficiencia de los
programas - La escalabilidad
- La portabilidad
12ANÁLISIS DE PERFORMANCE
- Muchos aspectos están involucrados en una
implementación paralela eficiente, escalable y
portable - el tipo de descomposición del problema,
- el tipo de algoritmo escogido,
- el tipo de arquitectura,
- el número de procesadores a utilizar,
- la topología de inteconexión, etc.
- Los desbalances en los sistemas de hardware,
implementaciones algorítmicas ineficientes y
desacuerdos del algoritmo y la arquitectura son
la principal causa de una implementación pobre.
13ANÁLISIS DE PERFORMANCE
- Esta naturaleza multidimensional de programas
paralelos es una dificultad añadida para el
análisis de performance paralela. - Para que el costo del ciclo de desarrollo de un
programa paralelo sea mínimo, es de vital
importancia resolver estos aspectos claves tan
tempranamente como sea posible. - Los métodos de Análisis y Predicción de
Performance proveen guías para la toma de estas
decisiones. -
14MODELOS DE PERFORMANCE
Pueden ser utilizados para comparar la
eficiencia de distintos algoritmos, evaluar
escalabilidad, identificar cuellos de botella y
otras ineficiencias ANTES de Invertir un
esfuerzo significante de implementación
15ANÁLISIS DE PERFORMANCE
- Dos técnicas (ramas) son comúnmente usadas para
el análisis, evaluación y predicción de la
performance - Medición Experimental (chequea de la performance
durante - el run-time del programa paralelo)
- Modelización (trabaja sobre un modelo abstracto
del - sistema real, utiliza técnicas analíticas o de
simulación) - Ambas técnicas juegan un rol muy importante en
estudiar la performance de un sistema y su
elección considera factores dependientes de los
objetivos de estudio.
16ENFOQUES PARA MODELAR PERFORMANCE
- Extrapolación a partir de Observaciones
Realizadas - Ley de Amdahls
- Análisis Asintótico
- Son adecuadas ?
17Extrapolación desde Observaciones
- Se ha implementado un algoritmo paralelo A y se
ha logrado un Sup de 10.8 utilizando 12
procesadores con un tamaño - del problema de SIZE100
- Por ejemplo
- T(Aseq) escala a raíz de (SIZESIZE2)
18Extrapolación desde Observaciones
- T(Apar) SIZESIZE2/P particiona toda la
computación y replica la componente SIZE en todo
procesador - T(Apar) (SIZESIZE2)/P100 particiona toda
la computación e introduce un costo adicional de
100 - T(Apar) (SIZESIZE2)/P0.6P particiona toda la
computación e introduce un costo adicional de
0.6P
19Extrapolación desde Observaciones
20Extrapolación desde Observaciones
- Se ha implementado un algoritmo paralelo A y se
ha logrado un Sup de 10.8 utilizando 12
procesadores con un tamaño del problema de
SIZE100 - Válido como medida de calidad de este único punto
de observación. - Inválido como medida de performance del algoritmo
A.
21Ley de Amdahl
- Todo algoritmo tiene una componente secuencial
que eventualmente limitará el speedup alcanzado
sobre una computadora paralela. - Si la componente secuencial es un f del tiempo
paralelo, entonces el máximo Sup posible en una
computadora paralela será 100/f - Ej Componente sec. 5 , ? Max(Sup )
1/.0520
22Ley de Amdahl (?)
- La ley de Amdahl limita el uso de paralelismo
- La escalabilidad de algunas soluciones puede
estar limitada debido a costos de comunicación - o demasiados tiempos ociosos, más que por la
existencia de componentes secuenciales
23Análisis Asintótico
Frecuentemente se caracteriza la performance de
un algoritmo paralelo de la siguiente manera
Un Análisis asintótico revela que el algoritmo
requiere un tiempo de O(SIZE log SIZE) utilizando
un número de procesadores de O(SIZE) Lo
anterior establece que el costo varía cuando
SIZE y P son grandes (tienden a infinito)
24Análisis Asintótico
- Juega un rol muy importante en el diseño de
programas paralelos - Sin embargo hay que tener cuidado en algunos
aspectos - Ignora el análisis de problemas de tamaño
pequeño. - Ignora el análisis de problemas resueltos con un
número pequeño de procesadores. - No considera costos absolutos.
- Considera modelos de máquinas idealizadas que
pueden variar de las computadoras reales (Modelo
PRAM)
25Modelos de Performance
- Un buen modelo debe ser capaz de explicar
observaciones disponibles y predecir
observaciones futuras. - La ley de Amdahl, la extrapolación de
observaciones y el análisis asintótico no
satisfacen completamente estos requerimientos.
26Modelos de Performance
- Existen varios modelos de performance teóricos
- PRAM
- BSP
- Modelo Colectivo
- Redes
- LogP
- Oblivious BSP
Estos modelos incluyen demasiados detalles como
para ser prácticos para programadores de
aplicaciones paralelas
27Modelo de Performance Inicial
- (Revisión)
- Tiempo de Ejecución
- Escalabilidad
28Tiempo de Ejecución
- Los modelos propuestos consideran como métrica
específica, el tiempo de ejecución (T), como
una función del tamaño del problema SIZE, del
número de procesadores P, del número de tareas U
y de otras características del algoritmo y del
hardware - T f(SIZE, P, U,....)
- T tiempo de ejecución de un programa paralelo
(tiempo transcurrido desde que el primer
procesador comienza a ejecutar sobre el problema
hasta que el último procesador completa la
ejecución)
29Tiempo de Ejecución
- T j T jcompT jcommT jidle Proc j
- Alt 1 T max(T0, T1,..., TP-1)
-
- Alt. 2 T (T0 T1...TP-1)/P
- T ( )/P
30Tiempo de Computación
- Generalmente quedará expresado en función de
determinantes del algoritmo (tamaño de los datos,
tamaño de las estructuras de datos, número de
tareas, número de procesadores). - También, Tcomp puede depender de características
del procesador y de su sistema de memoria.
31Tiempo de Comunicación
- Es el tiempo gastado en enviar y recibir
mensajes, e incluye el tiempo de sincronización.
- En una arquitectura ideal, el costo de enviar
mensajes entre dos tareas ubicadas en dos
procesadores distintos puede ser representada
por - ts tiempo de startup del mensaje (para
iniciar la comunicación) - tw tiempo de transferencia por palabra
32Tiempo de Comunicación
- El tiempo requerido para enviar un mensaje de L
palabras es - Tmgs ts tw L
ts y tw Deberán ser obtenidos empíricamente
para cada arquitectura !
Sus valores, pueden depender del patrón de
comunicación involucrado? Si su rpta es sí
Cómo modificaría el modelo?
33Tiempo Idle
- Es difícil de determinar ya que generalmente
depende del orden de ejecución de las operaciones
de computación y comunicación. - Un proceso puede estar ocioso debido a la falta
de computación o a la no disponibilidad de datos
(ambas situaciones deberían tratar de evitarse) - técnicas de balance de carga
- técnicas de superposición de comunicación con
computación - utilizar primitivos de comunicación no bloqueantes
34Ejemplo Diferencias Finitas de una Dimensión
- Considere un problema de diferencia finita de
una- dimensión, en el cual se tiene un vector
X(0) de dimensión N y se debe computar X(T)
donde
35Ejemplo Diferencias Finitas de una Dimensión
36Ejemplo Diferencias Finitas de dos Dimensiones
37Ejemplo Diferencias Finitas de una Dimensión
Un algoritmo paralelo para este programa puede
crear N tareas, una para cada punto en el
vector. Cada proceso es responsable de computar
el valor final de X(t) en T pasos. Cada proceso
i en el paso t debe 1- Enviar sus datos Xi(t)
a sus vecinos de derecha e izquierda 2. Recibir
Xi-1(t) y Xi1(t) de sus vecinos de izquierda y
derecha 3. Utilizar estos valores para computar
Xi(t1)
38Ejemplo Diferencias Finitas de Dos Dimensión
Un algoritmo paralelo para este programa puede
crear N tareas, una para cada punto en el
vector. Cada proceso es responsable de computar
el valor final de X(t) en T pasos. Cada proceso
(i,j) en el paso t debe 1- Enviar sus datos
Xi,j(t) a sus vecinos en cada dimensión 2.
Recibir Xi-1,j (t) , Xi1,j (t) , Xi,j-1 (t) y
Xi,j1 (t) dede sus vecinos de cada dimesión 3.
Utilizar estos valores para computar Xi,j(t1)
39Ejemplo Diferencias Finitas de una-Dimensión
Analizar Tiempo de Ejecución de cada
Paso (Suponiendo una grilla de procesadores de
1-Dimesión N) Tcomp tc Tcomm ts
tw 2 2 l l longitud en palabras
de cada dato
L
40Ejemplo Diferencias Finitas de dos-Dimensiones
Analizar Tiempo de Ejecución de cada
Paso (Suponiendo una grilla de procesadores de
2-Dimensiones NxN) Tcomp tc
Tcomm ts tw 2 2 2 l
41Ejemplo Diferencias Finitas de tres-Dimensiones
Analizar Tiempo de Ejecución de cada
Paso (Suponiendo una grilla de procesadores de 3
Dimesiones NxNxN) Tcomp tc Tcomm ts
tw 3 2 2 l Tcomm ts tw d 2
2 l
42Ejemplo Diferencias Finitas de tres-Dimensiones
Analizar Tiempo de Ejecución de cada
Paso (Suponiendo tener 2 procesadores para
resolver el problema tridimensional NXxNyxNz)
43Ejemplo Diferencias Finitas de tres-Dimensiones
Analizar Tiempo de Ejecución de cada
Paso (Suponiendo tener 2 procesadores para
resolver el problema tridimensional
NXxNyxNz) Tsec tc NX Ny Nz Tcomp tc
NX Ny / 2 Nz Tcomm ( ts tw
2 NX Nz l) Tpar tc NX Ny
/2 Nz ts tw 2 NX Nz l
44Ejemplo Diferencias Finitas de tres-Dimensiones
Analizar Tiempo de Ejecución de cada
Paso (Suponiendo tener 4 procesadores para
resolver el problema tridimensional NX x Ny x
Nz) Cómo particionarían el problema?.
45Escalabilidad
- Ley de Gustafson
- La ley hace la observación que un multiprocesador
más grande debería resolver un problema mas
grande en un tiempo razonable - sparte secuencial
- pparte paralela
- sp1
- T1spP
- Tparsp
Sup(P) (spP)/(sp) Sup(P)s(1-P)P