PRÁCTICA DE SISTEMAS MULTIPROCESADORES Introduccción El campo de la arquitectura de ordenadores es cada vez mas cuantitativo. A la hora de introduccir una nueva característica en el diseño de un sistema es necesario realizar una detallada evaluación previa de las ventajas e inconvenientes. Una vez que los sistemas están construidos, deben evaluarse para poder ser comparados tanto por los usuarios a la hora de determinar su adquisición como por los arquitectos para comprender el impacto de las decisiones que se tomaron. Dada la complejidad de los sistemas actuales, el mejor método, y a veces el único, que tenemos para evaluar las prestaciones de un sistema o el impacto de una decisión de diseño es la utilización de cargas de trabajo que se ejecutan o simulan sobre los sistemas bajo estudio. En el caso de los Sistemas Multiprocesador una de las cargas de trabajo que más se utilizan cuando estamos interesados en evaluar el sistema para la resolución de problemas paralelizables es el SPLASH-2. El objetivo de esta práctica es utilizar algunos de los programas que aparecen en este bechmark para evaluar el impacto de algunas de las decisiones de diseño que se toman en un sistema multiprocesador (tamaño de la caché, tamaño de la línea, número de procesadores, etc). Las aplicaciones que utilizaremos son la LU, la FFT y el OCEAN . También se nos pedirá desarrollar una p equeña aplicación p aralela qu e implemente el nú cleo de resolución d e ecuaciones diferenciales parciales mediante el método de diferencias finitas (ver página 92 y siguientes del libro “Parallel Computer Architecture” de David Culler) utilizando la ordenación red-black. Todas estas aplicaciones se ejecutarán bajo un simulador denominado LIMES que implementa un sistema SMP utilizando dos protocolos de coherencia de caché: el MESI y el Dragon. A partir de los resultados que obtengamos para diferentes configuraciones se intentará determinar que protocolo tiene un mejor comportamiento, así como las causas de dicho comportamiento. Enunciado de la práctica a) Utilizando el simulador LIMES obtener el speedup algorítmico de las tres aplicaciones: LU, FFT y OCEAN, en función del número de procesadores para un tamaño de problema mediano utilizando el modelo de escalamiento de tamaño de problema fijo (PC), tiempo de ejecución fijo (TC) y utilización de la memoria fija (MC). (Por problema mediano entendemos aquel que tiene un tiempo de simulación razonable incluso para el peor modelo de escalamiento posible). b) Comparar el speedup obtenido en el apartado anterior con el que se obtiene cuando se tiene en cuenta el coste del protocolo de coherencia de caché para los dos protocolos bajo estudio. c) Determinar el tamaño de los conjuntos de trabajo para las tres aplicaciones antes mencionadas para una ejecución con 4 procesadores y un tamaño de problema mediano. d) Implementar la aplicación paralela de núcleo de resolución de ecuaciones mediante la ordenación red-black, determinar el speedu-up ideal y real bajo los dos protocolos, así como el escalamiento de la misma bajo los tres modelos antes comentados. Determinar el tamaño de los conjuntos de trabajo para una ejecución con 8 procesadores. e) Comparar ambos protocolos teniendo en consideración factores tales como el número de procesadores (1-16), tamaño de la caché (8K-512K) y el tamaño de la línea (16-256 bytes), utilizando el modelo de escalamiento de tamaño de problema fijo y las 4 aplicaciones paralelas que has implementado. f) Modificar la aplicación del núcleo de resolución de ecuaciones para permitir elegir si el recorrido se quiere realizar por filas o columnos (opción -f y -c) y para introducir la técnico del procesamiento por bloques (opción -bN). Determinar como afecta al rendimiento de la aplicación el tiempo de recorrido que se realiza. Para ello realiza las simulaciones que consideres opoturnas para diferentes configuraciones de la máquina y analizando el recorrido por filas, por columnas, por filas para un tamaño de bloque de 8x8 y por columnas para ese mismo tamaño de bloque. Documentación a entregar La documentación a presentar será un boletín de la práctica en donde se comenten los resultados obtenidos en cada uno de los apartados, valorando aquellos aspectos que consideres más interesantes. La documentación incluirá un anexo con el código fuente de la aplicación que se os pide implementar, así como una indicación de las opiciones de funcionamiento de dicha aplicación. También se me enviará a través de un correo a mi dirección: [email protected] un fichero tgz con el código de la aplicación realizada así como los ficheros con el volcado de las simulaciones realizadas. El subject del correo deberá indicar “Prácticas de SMP” La fecha de entrega máxima de esta práctica es el viernes 16 de enero de 2004.