Modelo analÃtico de rendimiento
Modelo analÃtico de rendimiento
Modelo analÃtico de rendimiento
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
<strong>Mo<strong>de</strong>lo</strong> analítico <strong>de</strong> <strong>rendimiento</strong><br />
Curso 2011-2012
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Índice<br />
• Fuentes <strong>de</strong> overhead en programas paralelos.<br />
• Métricas <strong>de</strong> <strong>rendimiento</strong> para sistemas<br />
paralelos.<br />
• El efecto <strong>de</strong> la granularidad en el <strong>rendimiento</strong>.<br />
• Escalabilidad <strong>de</strong> los sistemas paralelos.<br />
• Tiempo <strong>de</strong> ejecución mínimo .<br />
• Análisis asintótico <strong>de</strong> programas paralelos.
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Fuentes <strong>de</strong> overhead en programas paralelos<br />
• Existen fuentes <strong>de</strong> overhead que<br />
disminuyen el <strong>rendimiento</strong><br />
óptimo:<br />
– Comunicaciones entre<br />
procesadores.<br />
– Procesadores ociosos:<br />
Desequilibrado <strong>de</strong> carga,<br />
sincronización, componentes<br />
serie.<br />
– Exceso <strong>de</strong> computación en<br />
algoritmos serie: algoritmos no<br />
óptimos.<br />
• Objetivo: Minimizar estos<br />
efectos.
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Métricas <strong>de</strong> <strong>rendimiento</strong> para sistemas paralelos (I)<br />
• Tiempo <strong>de</strong> ejecución paralelo.<br />
– Tiempo empleado para resolver un problema en p<br />
procesadores: T p<br />
• Función <strong>de</strong> overhead total.<br />
– T o = p·T p - T s<br />
• Speed-up.<br />
– S = T s / T p (Límite teórico = p)<br />
– ¿Es posible obtener Speed-up’s superlineales<br />
(mayores que p)
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Speed-up en algoritmo <strong>de</strong> suma<br />
• Tiempo <strong>de</strong> suma en sistema<br />
serie: T s = O(n).<br />
• Tiempo <strong>de</strong> suma en sistema<br />
paralelo: T p = O(log n).<br />
• S = O(n / log n).<br />
• Para calcular el Speed-up<br />
hay que consi<strong>de</strong>rar el mejor<br />
algoritmo serie que<br />
resuelva el problema.
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Ejemplo <strong>de</strong> Speed-up superlineal<br />
Solución<br />
• Tiempo <strong>de</strong> búsqueda serie (primero en profundidad): T s = 14·t c<br />
• Tiempo <strong>de</strong> búsqueda paralelo (con 2 procesadores): T p = 5·t c<br />
• S = 14 / 5 = 2.8 > 2 !! Speed-up superlineal.<br />
• Algoritmo <strong>de</strong> búsqueda serie no óptimo. Si primero en anchura,<br />
S = 7 / 5 < 2<br />
• A menudo, el algoritmo <strong>de</strong> búsqueda serie óptimo <strong>de</strong>pen<strong>de</strong> <strong>de</strong> la<br />
solución.
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Métricas <strong>de</strong> <strong>rendimiento</strong> para sistemas paralelos (II)<br />
• Eficiencia.<br />
– Speed-up conseguido por procesador: E = S / p<br />
• Coste (en términos <strong>de</strong> Trabajo). También llamado<br />
producto procesador-tiempo o trabajo.<br />
– Coste (o trabajo) = p·T p<br />
• Un sistema es óptimo en coste si el coste <strong>de</strong> resolver<br />
un problema en el sistema paralelo tiene el mismo<br />
crecimiento asintótico (en función <strong>de</strong>l tamaño <strong>de</strong>l<br />
problema) que el coste en el mejor sistema serie<br />
equivalente.
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Sistemas óptimos en coste<br />
• Ejemplo (algoritmo <strong>de</strong> suma):<br />
– Coste paralelo: O(n·log n)<br />
– Coste serie: O(n).<br />
– No es óptimo en coste. El coste paralelo crece a<br />
mayor velocidad que el serie, en términos <strong>de</strong> n.<br />
• La eficiencia <strong>de</strong> un sistema óptimo en coste es<br />
O(1).
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
El efecto <strong>de</strong> la granularidad en el <strong>rendimiento</strong><br />
• Utilizar el máximo número <strong>de</strong> procesadores<br />
que el algoritmo permita no suele ser factible.<br />
• Solución: Subescalar el sistema (aumentar la<br />
granularidad, y utilizar menos procesadores).<br />
• Si un sistema es óptimo en coste, sigue<br />
siéndolo tras subescalarlo.<br />
• Si un sistema no es óptimo en coste, pue<strong>de</strong> o<br />
pue<strong>de</strong> que no lo sea tras subescalarlo.
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Ejemplo <strong>de</strong> subescalado (I)<br />
• Suma <strong>de</strong> n números con p procesadores (ambos potencias <strong>de</strong> 2).<br />
Fase 1 Fase 2<br />
Siempre hay log p fases, cada una <strong>de</strong> ellas con (n / p) pasos
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Ejemplo <strong>de</strong> subescalado (II)<br />
Fase <strong>de</strong> agrupamiento<br />
• Tiempo fases iniciales: O((n/p)·log p)<br />
• Tiempo fase <strong>de</strong> agrupamiento: O(n/p) No hay comunicaciones.<br />
• TOTAL Tiempo paralelo: O((n/p)·log p)<br />
• TOTAL Coste paralelo (p·T p ): O(n·log p)<br />
Sigue sin ser<br />
• Coste serie: O(n)<br />
óptimo en coste
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Ejemplo <strong>de</strong> subescalado (III): Mejora en la asignación<br />
• Fases (a): O(n/p) No hay comunicaciones.<br />
• Fases (b)-(d): O(log p).<br />
• TOTAL tiempo paralelo: O((n/p) + log p) → Coste: O(n + p·log p)<br />
• Si n/p (granularidad) suficientemente gran<strong>de</strong>, n = Ω(p·log p), y por lo<br />
tanto, el coste paralelo es O(n).<br />
Ahora es óptimo en coste<br />
• Coste serie: O(n).<br />
• El algoritmo elegido es crítico para el <strong>rendimiento</strong>.<br />
• Subescalar el sistema hace que su <strong>rendimiento</strong> en tiempo disminuya,<br />
pero que su <strong>rendimiento</strong> en coste pueda ser óptimo.
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Escalabilidad <strong>de</strong> los sistemas paralelos<br />
• A menudo, los algoritmos paralelos se testean y mi<strong>de</strong>n en problemas<br />
pequeños, para simplificar los procesos.<br />
• Sin embargo, estos algoritmos se usan para solucionar problemas a<br />
gran escala, y por lo tanto es necesario extrapolar su <strong>rendimiento</strong><br />
cuando n es gran<strong>de</strong>.<br />
• Este proceso no es trivial, y lleva muchas veces a engaño.<br />
Speed-up frente a n para tres<br />
métodos <strong>de</strong> cálculo <strong>de</strong> la<br />
Transformada Rápida <strong>de</strong><br />
Fourier. ¿Cuál es mejor
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Efecto <strong>de</strong> la escalabilidad en T o<br />
• T o crece al menos linealmente en función <strong>de</strong> p:<br />
– Cada proceso introduce una parte intrínsecamente<br />
lineal, que no pue<strong>de</strong> ejecutarse en paralelo. Se produce<br />
<strong>de</strong>sequilibrado <strong>de</strong> carga y hay más procesadores<br />
ociosos.<br />
– Las comunicaciones entre procesadores aumentan.<br />
• T o , en la mayoría <strong>de</strong> los casos, crece sub-linealmente<br />
en función <strong>de</strong>l tamaño <strong>de</strong>l problema (W):<br />
– Esto implica que, en proporción (aunque no en valor<br />
absoluto) T o sea menor cuanto mayor sea W.
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Efecto <strong>de</strong> la escalabilidad en E<br />
• Ejemplo <strong>de</strong> suma <strong>de</strong> n números en p procesadores (última<br />
versión). Si el tiempo <strong>de</strong> comunicación y el <strong>de</strong> una<br />
operación aritmética es 1:<br />
n<br />
Sumas locales iniciales<br />
T p<br />
= + 2⋅log<br />
p<br />
p<br />
Sumas inter-procesador<br />
S<br />
E<br />
=<br />
n<br />
p<br />
=<br />
1+<br />
n<br />
+ 2⋅log<br />
1<br />
2 p ⋅log<br />
n<br />
p<br />
p<br />
T o<br />
+ comunicaciones<br />
•Si crece p, disminuye E<br />
•Si crece el tamaño <strong>de</strong>l<br />
problema (n), aumenta E
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Efecto <strong>de</strong> la escalabilidad en E<br />
W fijo<br />
p fijo<br />
•¿Qué ocurre si se aumenta a la vez p y W<br />
•¿Podría mantenerse E constante
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Variación <strong>de</strong> Speed-up y Eficiencia frente a p y n<br />
• El Speed-up se estabiliza con el incremento <strong>de</strong> p (la Eficiencia<br />
disminuye).<br />
• A p constante, el Speed-up (y la Eficiencia) aumentan con el tamaño<br />
<strong>de</strong>l problema (W).
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Sistema escalable<br />
• Si en un algoritmo la Eficiencia crece con el tamaño<br />
<strong>de</strong>l problema y <strong>de</strong>crece con el número <strong>de</strong><br />
procesadores, ¿qué ocurre si aumentamos ambos<br />
W(n) y p<br />
• Si la respuesta es que la Eficiencia se estabiliza y<br />
• Si la respuesta es que la Eficiencia se estabiliza y<br />
permanece constante, entonces el sistema paralelo<br />
se dice escalable.
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Función <strong>de</strong> Isoeficiencia (I)<br />
T<br />
T<br />
o<br />
p<br />
( W , p)<br />
= p ⋅T<br />
−W<br />
El overhead es función <strong>de</strong>l<br />
=<br />
W<br />
+ To<br />
( W ,<br />
p<br />
p<br />
p)<br />
número <strong>de</strong> procesadores (p) y <strong>de</strong>l<br />
tamaño <strong>de</strong>l problema (W)<br />
S<br />
=<br />
W W<br />
=<br />
Tp W + T<br />
o<br />
⋅ p<br />
( W , p)<br />
E<br />
=<br />
S<br />
p<br />
=<br />
W<br />
W<br />
1<br />
=<br />
+ To ( W , p)<br />
1+<br />
To<br />
( W , p)<br />
/ W
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
E<br />
T o<br />
W<br />
W<br />
1<br />
=<br />
1+<br />
To ( W , p)<br />
/ W<br />
( W<br />
,<br />
p<br />
)<br />
− E<br />
= 1<br />
W E<br />
E<br />
= ⋅T<br />
( W , p)<br />
1−<br />
E<br />
K ⋅T<br />
Función <strong>de</strong> Isoeficiencia (II)<br />
Función <strong>de</strong> isoeficiencia<br />
•La función <strong>de</strong> isoeficiencia indica<br />
( cuánto tiene que aumentar W<br />
(tamaño <strong>de</strong>l problema) para po<strong>de</strong>r<br />
incluir más procesadores sin que la<br />
Eficiencia <strong>de</strong>l sistema se resienta.<br />
=<br />
o<br />
o<br />
( W , p)<br />
•Cuanto menor sea la función <strong>de</strong><br />
isoeficiencia, mejor, ya que el<br />
sistema es más escalable.
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Función <strong>de</strong> Isoeficiencia: Ejemplo<br />
• La función T o para el algoritmo <strong>de</strong> suma <strong>de</strong> n números en p<br />
procesadores es aproximadamente 2p·log p, por lo que la<br />
función <strong>de</strong> isoeficiencia será:<br />
W<br />
=<br />
K<br />
⋅ 2 p ⋅log<br />
• La función <strong>de</strong> isoeficiencia es O(p·log p).<br />
• Si p = 16, entonces W = 128·K, pero para aumentar p al<br />
doble (p = 32), necesitamos W = 320·K para po<strong>de</strong>r mantener<br />
la eficiencia constante.<br />
• Es <strong>de</strong>cir, el tamaño <strong>de</strong>l problema tiene que crecer en un<br />
factor <strong>de</strong> 2.5 para po<strong>de</strong>r añadir el doble <strong>de</strong> procesadores.<br />
• Si no se cumple esta proporción, el sistema per<strong>de</strong>rá<br />
eficiencia progresivamente.<br />
p
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Función <strong>de</strong> Isoeficiencia <strong>de</strong>pendiente <strong>de</strong> W<br />
• Lo habitual es que la función T o <strong>de</strong>penda tanto <strong>de</strong> p como W,<br />
lo cual complica el análisis.<br />
3/ 2 3/ 4 3/ 4<br />
• Ej.: T o<br />
= p + p ⋅W<br />
• Consi<strong>de</strong>rando sólo el primer término:<br />
W<br />
=<br />
K<br />
⋅<br />
p<br />
3/ 2<br />
• Consi<strong>de</strong>rando sólo el segundo término:<br />
W<br />
= K ⋅<br />
p<br />
3/ 4<br />
⋅W<br />
3/ 4<br />
→ W<br />
1/ 4<br />
• El or<strong>de</strong>n <strong>de</strong> crecimiento es O(p 3/2 ) y O(p 3 ) respectivamente.<br />
• Si el tamaño <strong>de</strong>l problema crece <strong>de</strong>l or<strong>de</strong>n <strong>de</strong> O(p 3 ), la<br />
eficiencia se mantiene constante, O(1).<br />
• Todo ritmo <strong>de</strong> crecimiento inferior hace que la eficiencia<br />
empeore al aumentar p.<br />
=<br />
K<br />
⋅<br />
p<br />
3/ 4<br />
→ W<br />
=<br />
K<br />
4<br />
⋅<br />
p<br />
3
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Sistemas escalables y óptimos en coste<br />
• La propiedad <strong>de</strong> escalabilidad (isoeficiencia) está relacionada con los<br />
sistemas óptimos en coste.<br />
• Un sistema escalable se pue<strong>de</strong> convertir en óptimo en coste si se eligen<br />
apropiadamente el número <strong>de</strong> procesadores, en función <strong>de</strong>l tamaño <strong>de</strong>l<br />
problema <strong>de</strong> entrada.<br />
• Sistema óptimo en coste si su coste, p·T p , no exce<strong>de</strong> asintóticamente el<br />
crecimiento <strong>de</strong> W.<br />
W<br />
W<br />
W<br />
= Ω(<br />
p ⋅T<br />
= Ω(<br />
W<br />
= Ω(<br />
T<br />
o<br />
p<br />
)<br />
+ T<br />
o<br />
( W , p))<br />
( W , p))<br />
• Esta expresión coinci<strong>de</strong> con la <strong>de</strong>finición <strong>de</strong> isoeficiencia. Un sistema<br />
es óptimo en coste si su overhead, T o , no exce<strong>de</strong> asintóticamente el<br />
crecimiento <strong>de</strong> W.
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Tiempo <strong>de</strong> ejecución mínimo<br />
• Por mucho que aumente p, el mínimo T p está acotado. Si p<br />
es excesivamente gran<strong>de</strong>, el tiempo <strong>de</strong> comunicación<br />
domina sobre el <strong>de</strong> computación, y T p empeora.<br />
• Ej.: Suma <strong>de</strong> n números con p procesadores.<br />
n<br />
Tp<br />
=<br />
+<br />
2log<br />
p<br />
p<br />
d<br />
dp<br />
T<br />
p<br />
= 0 ⇒ −<br />
− n + 2 p =<br />
0<br />
n<br />
p<br />
2<br />
+<br />
2<br />
p<br />
=<br />
0<br />
Si p es mayor que este<br />
valor, el <strong>rendimiento</strong><br />
empeora<br />
p<br />
=<br />
n<br />
2<br />
⇒<br />
T<br />
min<br />
p<br />
=<br />
2⋅log<br />
n
AT5128 – Arquitectura e Ingeniería <strong>de</strong> Computadores II<br />
Juan Antonio Maestro (2004/05)<br />
Análisis asintótico <strong>de</strong> programas paralelos<br />
Datos expresados en<br />
Or<strong>de</strong>n <strong>de</strong> Magnitud<br />
(análisis asintótico)<br />
• ¿Qué algoritmo es mejor<br />
• ¿Es el Tiempo <strong>de</strong> ejecución una métrica significativa<br />
• ¿Hay algún algoritmo óptimo en coste