slides9 - Universidad de Santiago de Chile

Anuncio
Taller de Programación Paralela
Fernando R. Rannou
Departamento de Ingenierı́a Informática
Universidad de Santiago de Chile
July 31, 2008
Scalabilidad
Scalabilidad
Pintando una casa
Scalabilidad
■
Supongamos que deseamos pintar una casa que tiene 10 habitaciones. Si me demoro
1 dia por habitación, la casa completa me demorará 10 dias.
■
Si contrato un equipo de 10 personas, cada una podria pintar una pieza y la casa
estarı́a terminada en poco más de 10 dias; no exactamente 10 dias, pues el equipo
demorará un pequeño tiempo en asignación de piezas,
■
Si contrato 20 personas, la casa estará terminada en un poco más de 5 dias.
■
Si contrato 200?
◆ Mayor tiempo empleado en asignación
◆ Mayor tiempo de coordinación de las personas en cada pieza.
Fernando R. Rannou
Diinf-USACH
3 / 15
Lı́mite al speedup
Scalabilidad
■
Para un problema particular el Speedup tiene un lı́mite
■
Dado un problema dado, por ejemplo multiplicación de matrices de 100 × 100, a
medida que incremento el número de procesadores, 5, 10, 100, se obtienen cada vez
mejores speedups, pero llegará el momento en que la adición de nuevos procesadores
no mejorará el speedup.
■
Algunos factores que limitan el speedup son:
◆ Overhead de software
◆ Des-balance de carga
◆ Overhead de comunicación/sincronización
◆ Overhead secuencial que no puede paralelizarse
■
La única forma de mejorar el speedup es aumentar el tamaño del problema a medida
que se adicionan más procesadores
Fernando R. Rannou
Diinf-USACH
4 / 15
Ley de Amdahl
Scalabilidad
■
Supongamos que deseamos resolver un problema que tiene una porción serial, es decir
no puede paralelizarse, y otra paralela.
■
Si la porción secuencial demora Ts en un procesador y la porción paralela demora Tp ,
también en un procesador, entonces, el speedup alcanzable por n procesadores es:
S(n) =
■
Ts + Tp
Ts + Tp /n
(1)
Note que la definición de speedup por Amdahl corresponde a la noción de speedup
relativo.
Fernando R. Rannou
Diinf-USACH
5 / 15
Ejemplo en Amdahl
Scalabilidad
■
Sumar dos matrices de N × N demora:
◆ 3N 2 : dos lecturas y una escritura a disco
◆ N 2 /(V n), sumar N 2 números con n procesadores de velocidad V
■
El speed relativo es entonces:
3 + 1/V
3N 2 + N 2 /V
=
3N 2 + N 2 /(V n)
3 + 1/(V n)
■
Cuando n → ∞, el speedup es 1 + 1/3V
Fernando R. Rannou
Diinf-USACH
6 / 15
Ley de Amdahl (2)
Scalabilidad
■
Sea f = Ts /(Ts + Tp ), es decir la fracción secuencial del total del programa
■
El speedup puede ser reescrito como
S(n)
=
=
=
≤
■
Ts + T p
Ts + Tp /n
1
Ts
Ts +Tp
+
Tp
(Ts +Tp )n
1
f+
1
f
(1−f )
n
Es decir, el speedup alcanzable está limitado por su parte secuencial
Fernando R. Rannou
Diinf-USACH
7 / 15
Otra mirada a la Ley de Amdhal
Scalabilidad
■
Amdahl concluyó que los computadores paralelos no podrı́an entregar speedups cada
vez mayores, pues el speedup estaba limitado por la porción secuencial de los
problemas, independientemente del computador paralelo!
■
Por ejemplo, si el 5% de mi programa es serial, el speedup máximo alcanzable es 20.
■
Esto es verdad, cuando la fracción secuencial f no puede modificarse.
■
Si 0 < c ≤ f , entonces la ley de Amdahl es aplicable, pero existen muchos casos
donde la carga de trabajo puede modificarse, de tal forma que la parte secuencial se
puede hacer muy, muy pequeña respecto de la paralela.
■
En dichos casos, el speedup puede no tener lı́mite.
■
La ley de Amdahl es una ley de speedup para cargas de trabajo fijas.
Fernando R. Rannou
Diinf-USACH
8 / 15
Speedup para cargas de trabajo variable
Scalabilidad
■
En ciertas aplicaciones es importante obtener soluciones con una alta resolución y/o
precisión, sin importar que el problema se demore mucho.
■
Por ejemplo, la calidad de la solución de una ecuación diferencial por elementos finitos
depende del número de nodos del dominio; si el aumento de número de nodos no
aumenta sustancialmente la parte secuencial, el problema es candidato a tener
speedups cada vez más grandes
■
Otro ejemplo, son los algoritmos iteraivos, en que la carga de trabajo depende del
error de la solución y por lo tanto del número de iteraciones del algoritmo
■
En esto y otros casos la ley de Amdahl debe ser modificada para considerar el
aumento de la carga de trabajo
Fernando R. Rannou
Diinf-USACH
9 / 15
La Ley de Gustafson
Scalabilidad
■
Cuando la fracción paralelizable es escalable con n, manteniendo la fracción
secuencial intacta, obtenemos un speedup escalable
S(n) =
■
Ts + nTp
Ts + Tp
Note que el tiempo monoprocesador crece con el número de procesadores, pero el
tiempo paralelo permanece constante.
50
Amdahl
Gustafson
45
40
Speedup
35
30
25
20
15
10
5
0
0
10
20
30
40
50
60
70
80
90
100
Numero de procesadores (P)
Fernando R. Rannou
Diinf-USACH
10 / 15
Escalabilidad
Scalabilidad
■
Recordamos que un sistema paralelo consiste en un problema dado y una arquitectura
paralela:
■
Un sistema paralelo es escalable cuando su rendimiento continúa mejorando en la
medida que el tamaño del sistema crece, es decir
◆ crece el tamaño del problema que queremos resolver (o su precisión)
◆ y crece el número de procesadores del computador paralelo
■
Como medida de rendimiento podemos usar, por ejemplo, speedup.
Fernando R. Rannou
Diinf-USACH
11 / 15
Eficiencia (1)
Scalabilidad
■
La Eficiencia de un sistema paralelo se define como:
E(n) =
S(n)
n
■
La eficiencia es una medidad del grado de speedup alcanzado en relación al máximo.
■
Para el caso de cargas de trabajo fijo,
E(n) ≤ 1
es decir, cuando la porción serial es nula, el speedup es máximo, n, y la eficiencia es 1
■
Pero para cargas de trabajo escalables con el número de procesadores, es posible
E(n) > 1
Fernando R. Rannou
Diinf-USACH
12 / 15
Eficiencia (2)
Scalabilidad
■
Para proseguir hagamos las siguientes definiciones:
1. T1 : tiempo total monoprocesador (secuencial)
2. n: número de procesadores
3. T0 : overhead total del programa paralelo (no existe en el secuencial)
4. Tn : tiempo total paralelo
■
Luego, Tn = (T1 + T0 )/n, y el speedup es
S(n) =
■
nT1
T1
=
Tn
T1 + T0
Luego, la eficiencia es E(n) = S(n)/n ⇒
E(n)
=
=
Fernando R. Rannou
■
Diinf-USACH
T1
T1 + T0
1
1 + TT10
En ciertos sistemas paralelos T0 < 0, logrando un speedup superlineal
13 / 15
Ejemplo speedup y eficiencia
Scalabilidad
■
■
■
Considere el problema de sumar N números, y asuma que sumar dos números en un
procesador toma una unidad de tiempo. Luego, T1 = N
√
√
Suponga ahora que implementamos la suma en una grilla de n × n procesadores,
en la que una operación de comunicación demora una unidad de tiempo y ademas N
es divisible por n
Luego
◆ cada procesador tomará N/n unidades de tiempo en sumar N/n números
◆ la suma global se llevará a cabo en log n etapas de comunicación para sumar la
n sumas parciales
■
Tenemos, T1 = N , Tn = N/n + 2 log n, y por lo tanto T0 = 2n log n.
S=
T1
N
=
Tn
N/n + 2 log n
E=
Fernando R. Rannou
Diinf-USACH
S
N
=
n
N + 2n log n
14 / 15
Isoeficiencia
Scalabilidad
■
Cuando el número de procesadores aumenta y el tamaño del problema (o la carga de
trabajo) es el mism0, la eficiencia disminuye, pues el overhead paralelo T0 aumenta.
■
Cuando el problema aumenta y el número de procesadores es el mismo, la eficiencia
aumenta.
■
¿Con qué tasa debiera aumentar el tamaño del problema con respecto al número de
procesadores para mantener la eficiencia constante?
■
La eficiencia se mantendrı́a constante, si T0 /T1 es constante; es decir la carga de
trabajo T1 debe crecer en proporción al overhead T0 . ¿Qué proporción?
■
Reescribiendo la ecuacion de Eficiencia, obtenemos
T1 =
■
E
T0
1−E
Recordar que T0 es función del número de procesadores (por ejemplo, T0 = kn).
Luego, la ecuación anterior nos dice la tasa a que debe crecer la carga de trabajo
respecto del número de procesadores para mantener la eficiencia constante.
Fernando R. Rannou
Diinf-USACH
15 / 15
Descargar