• No se han encontrado resultados

Arquitecturas Paralelas Examen de Febrero 24 Enero 2005

N/A
N/A
Protected

Academic year: 2021

Share "Arquitecturas Paralelas Examen de Febrero 24 Enero 2005"

Copied!
7
0
0

Texto completo

(1)

Universidad del País Vasco Facultad de Informática

Dpto. de Arquitectura y Tecnología de Computadores

Arquitecturas Paralelas

Examen de Febrero 24 – Enero – 2005

Apellidos: Grupo:

Nombre: Firma:

1 / 2 / 3 4 / 5 / 6 7 / 8 9 / 10 11 12 / 13 / 14 15 / 16 / 17 18 / 19 20 / 21 / 22 23

El examen consta de dos partes, A y B. En la primera se trabajan conceptos básicos de la asignatura, y en la segunda se plantea un problema más largo. Evaluada cada parte en 10 puntos, la nota del examen será la mejor de:

- considerando todo el examen 0,75 A + 0,25 B - considerando sólo la primera parte 0,85 A

En todo caso, es necesario sacar más de 3 puntos de 10 en la parte A para aprobar la asignatura.

Parte A

23 cuestiones — 2 h. 45 min. — 7,5 puntos (u 8,5)

Se trata de resolver las cuestiones que se plantean y, en su caso, escoger la respuesta adecuada de entre las que se ofrecen (rodear con un círculo). Utiliza para la respuesta el espacio asignado a cada pregunta; aunque no es necesario, si necesitas más, utiliza la parte trasera de la hoja. En todo caso, las respuestas deben ser precisas.

Las preguntas valen 1 (cursiva) o 2 (negrita) puntos. En total, son 36 puntos. Las respuestas equivocadas no quitan puntos, pero sólo se tomarán en consideración las que provengan de una determinado cálculo o razonamiento. En general, las respuestas se considerarán sólo como mal o bien.

1.

Un computador vectorial, cuyo ciclo de reloj es 1,5 ns, realiza la operación vectorial A = B × (C + D) + 2.5

en un tiempo TV = 50 + 2 N ciclos de reloj, siendo N el número de elementos del vector.

Sin considerar otros problemas, la máxima velocidad de cálculo que se alcanzaría sería (N grande):

a. 1,5/2 Gflop/s b. 666 Mflop/s c. 25 Mflop/s d. 1 Gflop/s e. ninguna de ellas

Y para conseguir al menos la mitad de esa velocidad, los vectores tendrían que ser de al menos (elementos):

a. 100 b. 128 c. 25 d. 50 e. ninguna de ellas

2.

Completa la siguiente tabla indicando los principales momentos en la ejecución del programa vectorial indicado. La máquina vectorial permite encadenar instrucciones y dispone de 2 buses para acceder a memoria. No se producen conflictos en el acceso a los módulos de la memoria.

t. inicio lat. UF. dato 1 dato N

LV V1, A(R1) 3 7 LV V2, B(R1) MULV V3, V2, V1 3 LV V4, C(R1) ADDV V5, V4, V3 2 SV A(R1), V5

(2)

3.

Se ha medido en una máquina vectorial el tiempo de ejecución de la operación vectorial A = A + B en función de la longitud de los vectores, y se ha obtenido la siguiente figura. En base a ella, podemos decir que:

a. la máquina dispone al menos de 3 buses, y no encadena las instrucciones.

b. la máquina tiene un solo bus, y no encadena las instrucciones.

c. la máquina tiene 2 buses, y encadena las instrucciones.

d. dispone de 1 bus, y encadena las instrucciones.

e. ninguna de las respuestas anteriores es correcta.

0 50 100 150 200 250 0 20 40 60 80 100 120 T (ciclos) N (long)

4.

El términostrip-mininghace referencia, en un procesador vectorial, a:

a. una técnica que permite trabajar como si tuviéramos más registros.

b. el acceso a los vectores en memoria con un stride que sea número primo, para evitar colisiones en memoria.

c. un mecanismo para alcanzar velocidades de ejecución más altas.

d. el intercambio del orden de los bucles en la ejecución de matrices.

e. la necesidad de incluir bucles en la ejecución de vectores debido al tamaño limitado de los registros.

5.

Dibuja el grafo de dependencias del siguiente bucle y decide si es vectorizable o no, todo o en parte. En su caso, escribe el código vectorial, completo.

do i = 2, 100

(1) A(i) = B(2i+1)

(2) B(i-2) = A(3i+1) enddo

6.

Se ejecuta en una máquina vectorial el siguiente bucle de dos dimensiones: El tiempo de ejecución de la operación se puede modelar como TV = 20 + 2N ciclos y el coste del control del bucle externo se estima en 15 ciclos por iteración. Si efectuáramos el intercambio de bucles, el bucle se ejecutaría:

do i = 1, 100 do j = 1, 10

A(i, j) = A(i, j) * B(i, j) enddo

enddo

a. unas 10 veces más lento.

b. unas 10 veces más rápido.

c. unas 2 veces más lento.

d. unas 2 veces más rápido.

(3)

7.

Un bloque de memoria, de dos palabras, se encuentra únicamente en dos caches de un sistema SMP, y no es coherente con memoria principal. El contenido y el estado del bloque en memoria principal y las dos caches citadas podría ser:

a. MP = 0 – 5 MCi = 0 – 7 / M MCj = 3 – 5 / M

b. MP = 0 – 5 MCi = 2 – 3 / S MCj = 2 – 3 / S

c. MP = 0 – 5 MCi = 0 – 5 / S MCj = 3 – 5 / O

d. MP = 0 – 5 MCi = 0 – 5 / E MCj = 0 – 7 / M

e. MP = 0 – 5 MCi = 1 – 5 / S MCj = 1 – 5 / O

8.

Una máquina SMP utiliza un protocolo de coherencia snoopy tipo MOES(I), con política de escritura write-back siempre que es posible. Un determinado bloque de datos pasa por los siguientes estados en un procesador de dicha máquina: – → 3 – 4 / M → 6 – 4 / S

a. ¿qué operación realiza el procesador para que se produzca el primer cambio?

b. ¿qué tiene que ocurrir para que se efectúe el segundo cambio?

c. ¿de qué tipo de protocolo se trata? ¿por qué?

d. tras el segundo cambio, ¿cuál será el contenido de la MP?

9.

Escribe el código de una función de lock para controlar la entrada a una sección crítica mediante la técnica de Test-and-Test&Set.

10.

Hay que ejecutar la siguiente operación sobre un vector —C(i) = C(i) + MAX(C)— en una máquina SMP de P procesadores. Escribe el código que ejecutará cada procesador (modelo SPMD). Utiliza las funciones de sincronización que consideres adecuadas, e indica claramente qué variables son locales y cuáles globales. Cada proceso utiliza una variable pid como identificador.

(4)

11.

Dos procesadores de un sistema paralelo SMP ejecutan las siguientes operaciones de memoria: P1: LD A ... ST B ... LD B P2: ST C ... ST D ... LD E

De las siguientes combinaciones en el tiempo, indica cuáles son compatibles con el modelo secuencial de consistencia (SC) y cuáles con el modelototal store ordering(TSO).

a. LD A ST B ST D LD B ST C LD E

b. LD A ST C ST D ST B LD B LD E

c. ST C LD A LD E ST B ST D LD B

d. LD A ST C LD B ST D LD E ST B

e. ST C ST D LD A LD E ST B LD B

12.

En un toro de 32×32 nodos, la distancia entre los nodos 900 y 257 es:

a. 24 b. 23 c. 15 d. 9 e. ninguna de ellas

13.

En una máquina cuya red de comunicación es la anterior, se ejecuta una aplicación en la que el tráfico de mensajes tiene las siguientes características: 50% a nodos vecinos; 30% a nodos a la distancia media y 20% a nodos a la máxima distancia. Calcula la distancia media de los paquetes de dicha aplicación.

a. 11,7 b. 16,3 c. 8,3 d. 18,2 e. ninguna de ellas

14.

Un multiprocesador de 64 procesadores utiliza una red Omega con conmutadores de grado 2. ¿Cuántos

conmutadores utiliza? ¿Cuántos utilizaría si fueran de grado 4?

15.

Calcula la latencia de un paquete de 32 bytes (flits de 1 byte) que va del nodo 2 al nodo 31 en un hipercubo de 5 dimensiones con enlaces de 2 Gbit/s, si la comunicación es de tipo cut-through o wormhole y los encaminadores tienen un tiempo de respuesta de 5 ns. La red está vacía.

a. 532 ns b. 146 ns c. 1500 ns d. 160 ns e. ninguna de ellas

16.

Con un tráfico medio-alto en la red, se ha medido la latencia del paquete anterior en modo wormhole y se ha obtenido un incremento de un 20% sobre el caso de tráfico 0. Si la comunicación hubiera sido tipo

cut-through:

a. la latencia hubiera sido similar, ya que ambos mecanismos son equivalentes.

b. la latencia sería mayor, porque wormhole utiliza mejor los recursos de la red cuando ésta no está vacía.

c. la latencia sería menor, porque los paquetes en modo cut-through avanzan en forma segmentada.

d. la latencia sería menor, ya que los paquetes que se paran se guardan en un buffer del encaminador, para no estorbar.

(5)

17.

Para el hipercubo anterior (ej. 15), calcula el número de paquetes de 32 bytes por segundo que debe inyectar cada nodo, en modo estacionario y con destinos aleatorios, para que el tráfico alcance el 20% del máximo teórico correspondiente a la bisección de la red.

a. 3,1 millones b. 25 millones c. 6400 millones d. 125 millones e. ninguna de ellas

18

.

Una máquina MPP de memoria compartida (ccNUMA) utiliza un protocolo de coherencia similar al del Origin 2000. En un momento dado, existen dos copias de un bloque de memoria del procesador P6 en las caches de P2 y P4. Simultáneamente, tanto P2 como P4 efectúan una escritura en dicho bloque.

Indica en un grafo, de manera clara y concisa (mensajes, estados, ...), cómo se resuelve esta situación hasta que ambos consiguen terminar su operación de escritura.

19.

En una máquina, en la que el protocolo de coherencia es SCI (NUMA-Q), el procesador P6 efectúa una escritura sobre un bloque que no tiene en la cache y que corresponde a la memoria de P0. En ese momento, existen sólo dos copias del bloque, en P2 y P4, y la información en el directorio es Fresh / P2.

Indica el estado inicial del sistema y cómo se resuelve paso a paso la operación (qué mensajes se intercambian entre los procesadores, estados por los que pasa el bloque y el directorio, etc.)

(6)

20.

Un bucle tiene el siguiente grafo de dependencias. Indica cómo paralelizar el código utilizando vectores de eventos como mecanismo de sincronización.

21.

Indica cómo paralelizar de la manera más efectiva el bucle siguiente para una máquina con 40 procesadores Escribe el código para el caso de planificación estática consecutiva y estima el factor de aceleración que se obtendrá. do i = 0, 19 do j = 0, 199 A(i, j) = A(i, j) + 1 B(2i+1, j) = B(2i, j) * 2 enddo enddo

22.

E

n relación a la planificación de bucles en un sistema paralelo, indica sin son verdaderas o falsas, y por qué, las siguientes afirmaciones:

a. el reparto estático entrelazado favorece la localidad en el acceso a los datos.

b. lo mejor para un bucle sin dependencias (doall) es el reparto dinámico por trozos de tamaño decreciente.

c. si el tiempo de ejecución de las iteraciones es similar y no hay dependencias entre ellas, lo mejor es el reparto estático.

d. si hay que ejecutar 100 iteraciones entre 4 procesadores, una buena solución es una planificación dinámica por trozos de tamaño 20.

e. si hay que ejecutar 100 iteraciones entre 4 procesadores y el scheduling es guided (parte proporcional de lo que queda por hacer), el primero ejecutará 25 iteraciones y es posible que entre los otros 3 se repartan las otras 75 iteraciones.

23.

¿Qué es un cluster? El Donostia International Physics Center te encarga un cluster de altas prestaciones, con 64 procesadores, para efectuar cálculo intensivo. Indica, breve y concisamente, los elementos que utilizarías, la arquitectura, cómo lo programarías, etc.

1 2 3

(7)

Parte B

45 min. — 2,5 puntos

Un ejemplo típico de aplicación fácilmente paralelizable es el cálculo de una integral mediante la suma de pequeños trozos de área bajo la curva. Cuantos más trozos se hagan, mayor será la precisión del resultado.

x x f dx x f A N i i b a

=− ∆ = 1 0 ) ( ) ( ∆x = (b – a) / N x = a do i = 0, N-1 A = A + f(x) x = x + ∆x enddo A = A * ∆x

El tiempo de ejecución en serie es proporcional al número de sumas a efectuar.

(a) Escribe código en estilo SPMD, lo más eficiente posible, para ejecutar la operación anterior en una máquina SMP de P procesadores. Toma las decisiones que consideres más adecuadas y explícalas.

(b) Supón que el proceso en paralelo implica unos costes añadidos (generación de threads, sincronización, ...) que, para este caso, pueden modelarse como Tover (µs) = 200 + 10 P.

Obtén una expresión para Tcalc, el tiempo mínimo de cálculo del programa original, en función de P

(num. de proc.) para que la eficiencia (factor de aceleración dividido por P) conseguida al ejecutar en paralelo sea al menos del 50%. Indica el tiempo para el caso de P = 20 procesadores.

(c) Supón ahora que Tcalc = 105 µs. Dibuja en un gráfico el comportamiento (grosso modo) que tendrá el factor de aceleración en función del número de procesadores. Calcula el valor de P con el que obtendríamos el mejor resultado en este caso, es decir, el menor tiempo de ejecución. Calcula dicho tiempo de ejecución y

el speed-upobtenido.

Referencias

Documento similar

Se ha diseñado una arquitectura en la que, siguiendo la distribución expuesta en la introducción, se distinguirían las siguientes capas: la capa física, que se

[r]

[r]

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

1º) una motivación social minusvaloradora, despectiva o, incluso, estigmatizadora: las personas contra las que se discrimina, caracterizadas por lo general mediante su pertenencia a

De acuerdo con Harold Bloom en The Anxiety of Influence (1973), el Libro de buen amor reescribe (y modifica) el Pamphihis, pero el Pamphilus era también una reescritura y

[r]