19.01.2015 Views

Modelo analítico de rendimiento

Modelo analítico de rendimiento

Modelo analítico de rendimiento

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!