Arquitectura e Ingeniería de Computadores II Curso 2011 / 12 Problemas - Hoja 1 1) Considerar una malla bidimensional p x p con realimentación. Suponer que cada nodo se está comunicando únicamente con los nodos adyacentes que se encuentran a la derecha y abajo. ¿Cuál es el tiempo que se tarda en realizar todas las comunicaciones conjuntamente (teniendo en cuenta el efecto de la congestión)? ¿Es este tiempo consistente con el modelo de comunicaciones simplificado? 2) Repetir el ejercicio anterior, pero suponiendo que cada nodo establece una comunicación con otro nodo seleccionado aleatoriamente. ¿Cuál es el speed-up de la comunicación del primer caso frente al segundo? 3) Estudiar cómo se puede transformar un hipercubo de dimensión par en una malla bidimensional. Dibujar el esquema para el caso de 16 procesadores y calcular la congestión que se produce en función de p. 4) Un ciclo en un grafo se define como un camino que se origina y termina en el mismo nodo. La longitud de un ciclo es el número de aristas que hay que atravesar para completarlo. Probar que no existen ciclos de longitud impar en un hipercubo de dimensión d. 5) Calcular el diámetro, número de enlaces y ancho de bisección de un cubo k-ario (k procesadores por dimensión) de dimensión d, con p procesadores y realimentación. Calcular la distancia media entre cualquier par de nodos en la topología. 6) Para los grafos de dependencia de tareas de la Figura 1, determinar: a) Máximo grado de concurrencia. b) Longitud del camino crítico. c) Máximo speed-up alcanzable sobre un sistema monoprocesador si un número arbitrariamente grande de procesos están disponibles. d) Mínimo número de procesos para obtener el máximo speed-up. Figura 1 7) Considerar una versión simplificada del algoritmo de ordenación bucket-sort. Se parte de un array A de n enteros aleatorios, cuyo valor se sabe que está en el rango [1,r]. La salida se compone de r estructuras, de tal manera que al final del algoritmo la estructura i-ésima contiene los índices de todos los elementos de A con valor i. Describir un proceso de descomposición basado en los datos de entrada, y una posible asignación a p procesadores. Comentar brevemente cómo funcionaría el algoritmo paralelo. 8) Considerar el problema de calcular la frecuencia de aparición de distintos conjuntos de datos (itemsets) en las distintas transacciones de una base de datos. Para cada conjunto, habría que recorrer cada transacción, contando el número de ocurrencias, a fin de actualizar el contador de frecuencia asociado. Proponer la técnica de descomposición más apropiada para resolver este problema. 9) Uno de los problemas que más carga computacional genera es el cálculo de predicciones en tiempo real. Los vehículos auto-controlados llevan un amplio conjunto de sensores que alimentan un procesador, el cual evalúa las distintas situaciones que se pueden presentar en un futuro inmediato, y genera órdenes de control para mantener la trayectoria especificada. En sistemas avanzados, el tiempo de respuesta requerido suele ser mínimo, y por lo tanto inalcanzable para sistemas monoprocesador. En esta situación, se puede montar una plataforma paralela que se encargue de gestionar el control. Especificar qué técnica de descomposición sería la más apropiada para resolver este problema. ¿Qué tiene más sentido, una estrategia de equilibrado de carga estática o una dinámica? Explicar brevemente cómo se podría realizar este proceso de equilibrado. 10) La operación dual de la Difusión Todos-a-Todos es la Reducción Todos-a-Todos, en la que cada nodo es destinatario de una Reducción Todos-a-Uno. Por ejemplo, considerar un escenario en el que p procesadores tienen almacenados distintos vectores de p elementos, y en el que el procesador i-ésimo calcula la suma de los elementos i-ésimos de todos los vectores de la plataforma. Describir un algoritmo para realizar una Reducción Todos-a-Todos en un hipercubo, con operador asociativo de suma. Si cada mensaje contiene m palabras y tadd es el tiempo necesario para realizar una suma, ¿cuánto tiempo requeriría el algoritmo, en términos de m, p, tadd, ts y tw? 11) Dado un árbol binario equilibrado, describir un procedimiento para realizar una Difusión Todos-a-Todos, de tal manera que el tiempo de comunicación sea mínimo. Asumir que sólo el nivel inferior del árbol contiene nodos de proceso, y que el intercambio de dos mensajes (de m palabras) entre cualquier par de nodos (conectados por un canal bidireccional) tarda ts + tw·m·k, siendo k el número de intercambios simultáneos que se realizan sobre el canal. Expresar el tiempo total del algoritmo en función de m, p, ts y tw. 12) Suponer un procesador DLX cuyo CPI es 1.1. A fin de mejorar su rendimiento, se le dota de posibilidad de lanzamiento múltiple, convirtiendo su arquitectura en superescalar. Para posibilitar un mayor número de instrucciones lanzadas por ciclo, se estudian una serie de técnicas de planificación estática, calculando un CPI teórico de 0.8. Sin embargo, debido a esta planificación estática llevada a cabo por el compilador, se pierde la propiedad de proximidad espacial en las referencias, haciendo que la tasa de fallos de la cache local se incremente del 15% al 20%. Este procesador se encuentra ubicado en una plataforma paralela NUMA de 1024 nodos, organizada en malla 2-D. Suponer que cuando se produce fallo de cache, el número de veces que el dato requerido se encuentra en la memoria secundaria local es despreciable. Calcular cuál sería el CPI real del sistema, en función de m, ts y tw y f (frecuencia interna del procesador). ¿En qué afecta la organización interna de las memorias cache al tiempo de comunicaciones? 13) Partiendo del ejercicio anterior, estudiar cómo varía el rendimiento del sistema al organizar los procesadores en hipercubo. Explicar cómo modificar la malla previa para que su rendimiento sea igual al del hipercubo del presente ejercicio. Estudiar cómo afecta esta decisión al coste de la plataforma.