Diseño de sistemas distribuidos Trabajo: Introducción a la simulación de sistemas distribuidos Objetivo: El objetivo de este trabajo práctico es realizar una primera aproximación a la simulación de sistemas distribuidos con SimGrid. SimGrid es un toolkit que permite la simulación de sistemas y aplicaciones distribuidas en entornos heterogéneos. Se encuentra disponible en la siguiente página web: http://simgrid.gforge.inria.fr/ En el apartado download se puede obtener la última versión estable (3.9). El primer paso consistiría en la instalación de esta distribución. Material de apoyo: Se proporciona como material de apoyo el archivo dsd.tar. Este archivo deberá descomprimirse dentro del directorio examples/msg/, que se encuentra dentro delpaquete SimGrid. Una vez descomprimido con: tar xvf dsd.tar en este directorio se tendrá acceso a los siguientes ficheros: • • • • Makefile: que permite compilar los programas mm1.c y mm2.c mm1.c y mm2.c, descritos más abajo. Ficheros con definición de plataformas: platform1.xml y platform2.xml Fichero de despliegues: deployment1.xml y deployment2.xml El programa mm1 modela una cola M/M/1: La ejecución de este programa se realiza de la siguiente forma: ./mm1 platform1.xml deployment1.xml La ejecución de este programa permite obtener el tiempo medio de respuesta y el tamaño medio de la cola para 10000 peticiones de servicio. La tasa de llegadas es de 5 peticiones por segundo y la tasa de servicio es de 6 peticiones por segundo. El objetivo de este primer programa es estudiar cómo modelar colas M/M/1 en simGrid. El programa mm2 simula una cola M/M/1 de una manera distinta, en este caso en un procesador se modelan dos procesos: queue y server. El proceso cliente genera peticiones con un tiempo entre llegadas según una función de distribución exponencial. Estas peticiones llegan al proceso queue que las encola en una estructura. El proceso servidor va extrayendo elementos de esta estructura y ejecutando las peticiones localmente. El trabajo a realizar consiste en modificar el programa mm2.c para simular un sistema con N colas como el siguiente: Ha de modificarse el fichero de plataforma y el despliegue para incluir 10 servidores con las mismas características. Una vez modificado el programa se deberá calcular, para 10 servidores el tiempo medio de servicio, el número medio de peticiones por cola, el tiempo máximo en la cola y la energía consumida, para tres políticas de reparto en las colas siguientes: • • • Round-­‐robin: las peticiones se reparten de forma cíclica entre las diferentes colas. Aleatoria: las peticiones se reparten de forma aleatoria entre las diferentes colas, siguiendo una distribución uniforme. A la cola más pequeña: cuando llega una nueva petición se envía a la cola con el menor número de peticiones pendientes. Se deberá calcular el tiempo medio de servicio, el número medio de tareas en la cola esperando a ser servidas, el tiempo máximo en la cola y la energía consumida, para la tasa de llegadas que está definida en mm2.c inicialmente (5 peticiones por segundo) y para una tasa de llegadas 10 veces mayor. A continuación deberá modificarse la política de planificación en cada servidor. Se deberán implementar las siguientes políticas: • Primero el trabajo más corto. El servidor a la hora de ejecutar elige el trabajo con tiempo de ejecución más corto. Para ello, cada vez que llega una petición al proceso cola, se insertará en la cola y a continuación se ordenará de acuerdo al criterio: primero el trabajo más corto. • • Primero el trabajo más largo. El servidor elige el trabajo con tiempo de ejecución más largo. Para ello, cada vez que llega una petición al proceso cola, se insertará en la cola y a continuación se ordenará de acuerdo al criterio: primero el trabajo más largo. Planificación basada en épocas. En este caso, para las dos políticas anteriores, las colas no se ordenarán cada vez que llega una nueva petición. Las colas de planificación se ordenarán en cada servidor cada 5 segundos. Documentación a entregar: se deberá entregar a través de aula global la siguiente documentación: • • mm3.c: archivo con la modificación realizada. mm3.pdf: documento que describe los comentarios realizados en el código fuente de partida y que muestra los resultados obtenidos para todas las políticas definidas en el apartado anterior. El trabajo debe calcular para cada política: • • • • El tiempo medio de servicio de las tareas. El tamaño medio de las colas. El tiempo máximo en la cola. La energía media consumida en los servidores. Los resultados se mostrarán para un intervalo de confianza del 95%. Plazo de entrega: 13 de enero de 2015 Los trabajos se podrán realizar en grupos de dos alumnos. El día 13 de enero los diferentes grupos realizarán en clase una pequeña presentación describiendo el trabajo realizado y los resultados obtenidos.