Facultad de Informática, UPV Dpto. de Arquitectura y Tecnología de Computadores
Arquitecturas
Paralelas
Examen 19 – enero – 2009
Apellidos: Grupo:
Nombre: Firma:
1 2 3 4 5 6 7 8 9 10 11 12 13
El examen consta de dos partes (t. total: 2:45 h + 1 h). La primera parte es obligatoria (26 puntos en total) y la asignatura se aprueba sacando al menos 13 puntos; la nota máxima de esa parte es un 8. La segunda parte es optativa, y se evalúa en 2,5 puntos, pero sólo si en la primera parte se obtienen al menos 17 de los 26 puntos.
1ª parte
11 ejercicios — 2:45 h — 26 puntos1.
(3 p.) Un computador vectorial tiene las siguientes características: encadenamiento de instrucciones; 2 buses para acceder a memoria; registros vectoriales de 256 elementos; frecuencia de reloj de 666 MHz.a. Completa la siguiente tabla indicando los principales momentos (ciclos) en la ejecución del programa vectorial indicado. No tengas en cuenta los conflictos en el acceso a los módulos de memoria.
El esquema de segmentación de las instrucciones es: [ B/D - L - AM - M (6 ciclos) - E ] para las
instrucciones de memoria, y [ B/D-L-A(+, 2 ciclos; *, 3 ciclos)-E ] para la suma y el producto.
t. inicio lat. UF. dato 1 dato N
LV V1,A(R1) SV B(R1),V1 MULV V2,V1,V1 ADDVI V3,V2,#1.0 SV A(R1),V3
b. Sin rehacer los cálculos, ¿de qué orden sería el tiempo de ejecución si sólo hubiera un bus? ¿Y si hubiera tres buses pero las instrucciones no se encadenaran? Justifica tus respuestas.
c. Los vectores A y B son de 100 elementos. ¿Qué velocidad de cálculo (en MF/s) se consigue al ejecutar
el programa anterior? ¿Qué fracción (%) representa esa velocidad del máximo teórico posible si los vectores fueran muy grandes?
2.
(3 p.) Dibuja el grafo de dependencias de este bucle, y, si es posible, escribe el código vectorial completo para el mismo.k = 4
do i = 1, 100
(1) A(i) = A(i) + 3
(2) B(i) = A(i+1) + A(i)
(3) C(i) = A(i-1)+ B(k) k = k + 2
3.
(3 p.) Una máquina SMP de 4 procesadores mantiene la coherencia de los datos mediante un snoopy y un protocolo de invalidación tipo MESI. En un momento dado de la ejecución de una aplicación paralela de memoria compartida, los procesadores acceden a la variable A, cuyo valor inicial es 20 y que no se encuentraen ninguna de las caches del sistema, en el siguiente orden:
P1: LD R1,A; P3: LD R1,A; P2: ST A,#5; P0: LD R2,A;
a. Para cada una de las cuatro referencias, indica cómo se resuelve, las señales de control y el tráfico de datos que se genera, y el valor de A y el estado final del bloque de datos que la contiene en las cuatro
caches y en memoria principal.
MC0 MC1 MC2 MC3 MP Señ. Control Tráf. datos
inicio A=20
b. Sin rehacer el ejercicio, indica qué cambios habría en relación con el caso anterior si el protocolo de coherencia fuera de tipo MOESI.
4.
(1 p.) En una máquina SMP de 16 procesadores se dispone de instrucciones Test&Set para operacionesde sincronización. Una determinada aplicación requiere utilizar una sección crítica que sabemos se va a
ejecutar frecuentemente. Escribe código para las funciones que protegen la sección crítica (lock y
5.
(3 p.) Se va a ejecutar este programa entre los 8 procesadores de una máquina SMP:suma = 0;
for (i=0; i<1000; i++) suma = suma + A[i]; for (i=0; i<1000; i++) B[i] = B[i] / suma; printf("B0 = %d, B999 = %d\n", B[0], B[999]);
Todos los procesadores colaboran en la ejecución de los dos bucles, y se reparten las iteraciones de manera estática entrelazada. Escribe el código que se ejecutará en cada procesador (alto nivel). Si lo necesitas, utiliza las funciones de sincronización que consideres adecuadas. Indica claramente qué variables son privadas y cuáles son compartidas.
6.
(3 p.) Un multicomputador MPP tiene una topología en forma de estrella de dos niveles. 7 procesadores se conectan a un encaminador de mensajes de 8 enlaces bidireccionales, cuyo octavo enlace sirve para conectarse a un encaminador en el segundo nivel de la estrella. Los enlaces entre encaminadores son de 1 Gb/s, los paquetes son de 128 bytes (=flits) y el tiempo de procesamiento del flit de cabecera de los paquetes es de 16 ns. La comunicación es de tipo wormhole.a. Calcula el diámetro y la distancia media de dicha red. .
b. ¿Cuál es el ancho de banda de la bisección de esa red? Si ése es el parámetro que limita el tráfico máximo en esa red, calcula el máximo número de paquetes que pueden inyectar los procesadores en promedio de manera sostenida si el tráfico es aleatorio.
c. Para dos procesadores a distancia máxima en dicha red, calcula el tiempo de transmisión de un paquete cuando la red está vacía.
7.
(2 p.) Una red de comunicación de un multicomputador en forma de malla 3D permite el uso deencaminamiento estático DOR entre los nodos sin que se produzcan bloqueos (deadlocks) en la
comunicación. ¿Ocurriría lo mismo si la red fuera un toro 3D? ¿Por qué? En caso de que no, explica cómo se resuelve ese problema habitualmente. Por tanto, teniendo en cuenta los aspectos topológicos y de comunicación, indica las ventajas e inconvenientes del toro frente a la malla.
encaminador nodo de cálculo
8.
(3 p.) Un multicomputador DSM utiliza un protocolo de coherencia similar al de las máquinas Origin: información de coherencia concentrada en el directorio junto a memoria principal... Supón por simplificar que sólo existen cuatro procesadores: P0...P3.a. Explica por qué en este tipo de protocolos no se suele diferenciar el estado E y el M en la información de coherencia que guarda el directorio. Pon un ejemplo de las ventajas e inconvenientes de esa opción.
b. Dos procesadores de esa máquina (por ejemplo P1 y P3) efectúan más o menos al mismo tiempo una
escritura en la misma variable, produciéndose un acierto en cada cache local. La dirección de la variable corresponde a la memoria de P0
¿En qué estado se encontraba dicha variable (bloque) en la cache de cada procesador, y qué información de coherencia disponía en ese momento el directorio sobre dicho bloque?
Indica paso a paso cómo se resuelve la doble operación (mensajes, estados, etc.). Toma las decisiones que consideres pertinentes.
9.
(1 p.) En una máquina cc-NUMA, los P procesadores disponen de una memoria RAM de 1 GB y una memoria cache de 1 MB. La información de coherencia de los datos está repartida entre el directorio junto a MP y los directorios de las caches. En lo que a información de coherencia se refiere, en cada nodo de la red tendremos aproximadamente que,a. el tamaño del directorio junto a MP es unas 2×P veces menor que el directorio de las caches.
b. el tamaño del directorio junto a MP es unas 500 veces menor que el directorio de las caches.
c. el tamaño del directorio junto a MP es unas 500 veces mayor que el directorio de las caches.
d. el tamaño del directorio junto a MP es unas 2×P veces mayor que el directorio de las caches. Justifica tu respuesta.
10.
(3 p.) Dado el siguiente bucle:a. Indica cómo ejecutarlo en paralelo de la manera más eficiente posible. Escribe el código resultante.
do i = 1, 994
(1) A(i) = A(i) + B(i)
(2) C(i+1) = A(i+3) * C(i-1)
(3) D(i) = C(i-1) + 5
(4) E(i) = D(i+1) * A(i-1) enddo
b. El bucle se va a ejecutar en una máquina SMP de 8 procesadores. Escribe el código que ejecutará cada procesador si el reparto es dinámico de tipo guided self scheduling. ¿Cuál es el número de iteraciones de los dos primeros trozos que se repartirán del bucle?
11.
(1 p.) ¿En qué tipo de máquinas se utiliza principalmente MPI para programar aplicaciones paralelas? ¿Qué es en MPI una función de comunicación colectiva? Indica tres casos de ese tipo de comunicación y pon un ejemplo sencillo de cada uno de ellos.Facultad de Informática, UPV Dpto. de Arquitectura y Tecnología de Computadores
Arquitecturas
Paralelas
Examen 19 – enero – 2009
Apellidos: Grupo:
Nombre: Firma:
2ª parte
60 m – 2,5 puntosTres cuestiones a responder, en el orden indicado, hasta donde te llegue el tiempo.
a. (0,75 p.) Un determinado algoritmo de cálculo tiene un tiempo de ejecución de 24 ms en un procesador, y se repite un número muy elevado de veces, por lo que se decide estudiar su posible ejecución en paralelo en un
cluster.
En su versión en paralelo, el cálculo se puede repartir de manera muy eficiente entre los procesadores, pero hay que añadir comunicación: una fase inicial de distribución de datos y una de recogida de resultados al final. Cuando se ejecuta en una máquina de 8 procesadores, se consigue una eficiencia del 50%.
Para intentar mejorar ese resultado, se decide efectuar el cálculo de manera "más fina" (más cálculo), haciendo que su tiempo de ejecución se multiplique por 10 en el caso serie. ¿Cuál será el speed-up y la eficiencia que conseguiremos en este segundo caso?
Si sabemos que el coste de la comunicación crece logarítmicamente con el número de procesadores, ¿cuál sería el speed-up y la eficiencia esperable si utilizáramos 64 procesadores en lugar de 8?
b. (0,75 p) Describe de manera resumida (máximo un par de caras) el pasado, presente y futuro de las
arquitecturas vectoriales: historia de las mismas, usos, ventajas e inconvenientes frente a otras arquitecturas, situación actual, evolución previsible a plazo corto/medio, máquinas más relevantes...
c. (1 p.)El comportamiento de la red de comunicación de un computador paralelo puede analizarse mediante la teoría de colas. El modelo más sencillo para las colas de los encaminadores de la red es el que se conoce como M/M/1, en el que se utilizan estos dos parámetros:
µ: número de mensajes que salen del sistema por segundo (inverso del tiempo de servicio).
λ: número de paquetes que entran al sistema por segundo. a partir de los cuales, aplicando la teoría de colas, podemos obtener:
• nivel de utilización del encaminador: ρ = λ / µ
• probabilidad de tener k mensajes en espera: P(k) = (1–ρ) ρk
• población media en las colas de espera: N = ρ / (1–ρ)
• tiempo de estancia de un mensaje en el encaminador: T = (1/µ) / (1–ρ)
El tiempo de servicio de los encaminadores de una determinada red es de 125 ns (para encaminar y transmitir el paquete), y se reciben en el encaminador 1.600.000 paquetes por segundo (en media).
En base a la teoría de colas, calcula para ese sistema: (1) utilización de los encaminadores; (2) número promedio de mensajes en el encaminador; (3) probabilidad de overflow de las colas de espera si sólo pueden contener 3 paquetes; y (4) tiempo medio de espera de los mensajes en un encaminador, y, por tanto, latencia de un paquete que va a un nodo a distancia d = 8.
Finalmente, dibuja una curva para indicar cómo varía el tiempo de espera en el encaminador en función de ρ