Capitulo 7 - Problemas

November 22, 2020 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Capitulo 7 - Problemas...

Description

CAPÍTULO 7 Problema 1: Un programa tarda 40s en ejecutarse en un multiprocesador. Durante un 20% de ese tiempo se ha ejecutado en cuatro procesadores; durante un 60%, en tres; y durante un 20% restante, en un procesador (consideramos que se ha distribuido la carga de trabajo por igual entre los procesadores que colaboran en la ejecución en cada momento, despreciamos sobrecarga). ¿Cuánto tiempo tardaría en ejecutarse el programa en un único procesador? Solución: 4 Procesadores 20%

3 Procesadores 1 Procesador 60% 20% Tp = 40 segundos Ts1 Ts2 20% 60% Ts = = =

4 3 2

=

= = = +

Ts3 20%

4 3 1



20 100



60 100



20 100

+

= 88.89 ¿Cuál es la ganancia en velocidad obtenida con respecto al tiempo de ejecución secuencial? =

=

88.89 = 2.22 40

¿Y la eficiencia? = Hallando el promedio ponderado de los procesadores del sistema = 0.2 ∗ 4 + 0.6 ∗ 6 + 0.2 ∗ 1 = 2.8 =

2.22 = 0.79 2.8

Se consigue una eficiencia del 79% 1/6

Problema 2: Un programa tarda 20s en ejecutarse en un procesador P1, y requiere 30s en otro procesador P2. Si se dispone de los dos procesadores para la ejecución del programa (despreciamos sobrecarga) ¿Qué tiempo tarda en ejecutarse el programa si la carga de trabajo se distribuye por igual entre los procesadores P1 y P2? Solución: Procesador 1 Procesador 2 100% 100% 20 segundos 30 segundos Procesador 1 Procesador 2 50% 50% 10 segundos 15 segundos =

á

,

= 15

¿Qué distribución de carga entre los dos procesadores P1 y P2 permite el menor tiempo de ejecución utilizando los dos procesadores en paralelo? Siendo: X: Porcentaje del programa realizado por el procesador 1. Y: Porcentaje del programa realizado por el procesador 2. ∗ 20 = +

∗ 30 =1

=

3 = 0.6 5

=

2 = 0.4 5

El procesador 1 realiza el 60% del programa mientras que el procesador 2 el restante 40%. ¿Cuál es el tiempo? ∗ 20 = 12 ∗ 30 = 12

2/6

Problema 3: ¿Cuál es la fracción de código paralelo de un programa secuencial que, ejecutando en paralelo 8 procesadores tarda un tiempo de 100ns, durante 50ns utiliza 8 procesadores (distribuyendo la carga de trabajo por igual entre los procesadores, despreciamos sobrecarga)? Solución: 1 Procesador 8 Procesadores 50ns 50ns 100ns −8 =0 +

=1

=

8 = 88.89% 9

=

1 = 11.11% 9

88,89% = 11.11% 8 11.11%

ó

ó



Problema 4: Un 25% de un programa no se puede paralelizar, el resto se puede distribuir por igual entre cualquier número de procesadores (despreciamos sobrecarga) ¿Cuál es el máximo valor de ganancia de velocidad que se podría conseguir al paralelizarlo? Solución: 1 Procesador 25% +

( )=

N Procesadores 75%

+

+ =

( )=

á

1

=

+ ( + )

+

1 + ( − 1)

= lim ( ) = →

3/6

1

S=25 P=75 =

á

25 = 0.25 100 =

1 =4 0.25

¿A partir de cual número de procesadores se podrían conseguir ganancias mayores o iguales a 2? ( )=

1 + ( − 1)

=2

=3 A partir de 3 procesadores se consigue una ganancia mayor o igual a 2. Problema 5: En la figura se presenta el grafo de dependencia entre tareas para una aplicación. La figura muestra una fracción del tiempo de ejecución secuencial que la aplicación tarda en ejecutar las tareas del grafo. Suponiendo un tiempo de ejecución secuencial de 60s, que las tareas no se pueden dividir en tareas de menor granularidad y que el tiempo de comunicación es despreciable, obtener el tiempo de ejecución en paralelo y la ganancia en velocidad en un computador con 4 procesadores. Solución:

Tiempo de ejecución en paralelo de 33 segundos ( )=

= 4/6

60 = 1.82 33

Si el computador es con 2 procesadores.

Tiempo de ejecución en paralelo de 15 segundos. ( )=

=

5/6

60 = 1.33 45

Problema 6: Un programa se ha conseguido dividir en 10 tareas. El orden de precedencia entre las tareas se muestra con el grafo mostrado. La ejecución de estas tareas en un procesador supone un tiempo de 2s. El 10% de ese tiempo a la ejecución de la tarea 1; el 15% de ese tiempo a la tarea 2; otro 15% de ejecución de 3; cada tarea 4, 5, 6 o 7 supone el 9%, un 8% supone la tarea 8, la tarea 9 un 10%; por último, la tarea 10 supone un 6%. Se dispone de una arquitectura con 8 procesadores para ejecutar la aplicación. Consideramos que el tiempo de comunicación se puede despreciar. ¿Qué tiempo tarda en ejecutarse el programa en paralelo?

Solución:

El tiempo que tarda en ejecutarse el programa en paralelo es de 1 segundo. ¿Qué ganancia de velocidad se obtiene con respecto a su ejecución secuencial? ( )=

=

6/6

2 =2 1

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF