0% encontró este documento útil (0 votos)
105 vistas7 páginas

Simured

Este documento presenta SimuRed, un simulador de redes de multicomputadores. Explica cómo configurar parámetros de la red como la topología, retrasos, control de flujo y encaminamiento. También cubre la generación de paquetes a través de trazas de un archivo o automáticamente, y proporciona estadísticas sobre el rendimiento de la red. El objetivo del simulador es permitir el aprendizaje del funcionamiento de redes de multicomputadores de manera visual y estadística.

Cargado por

ernesto gamez
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
0% encontró este documento útil (0 votos)
105 vistas7 páginas

Simured

Este documento presenta SimuRed, un simulador de redes de multicomputadores. Explica cómo configurar parámetros de la red como la topología, retrasos, control de flujo y encaminamiento. También cubre la generación de paquetes a través de trazas de un archivo o automáticamente, y proporciona estadísticas sobre el rendimiento de la red. El objetivo del simulador es permitir el aprendizaje del funcionamiento de redes de multicomputadores de manera visual y estadística.

Cargado por

ernesto gamez
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 7

SIMURED

-- Manual del usuario -Fernando Pardo 18 de octubre de 2005

1 Introduccin
SimuRed es un simulador sencillo de redes de multicomputadores. El programa simula el envo de paquetes a travs de una red presentando estadsticas de tiempos consumidos, bloqueos producidos, etc. Permite una configuracin casi completa de la red y del proceso de envo de los paquetes, permitiendo el uso de ficheros de trazas donde se especifican los paquetes a enviar. El simulador es completamente visual y permite incluso ver la evolucin de los paquetes a travs de la red, por lo que es una buena herramienta para el aprendizaje del funcionamiento de las redes de multicomputadores. Existe tambin una versin en lnea de comandos cuyo funcionamiento interno es idntico, pero que al no tener ningn tipo de capacidad visual, los resultados son puramente estadsticos. La configuracin de los parmetros de la simulacin se realiza redireccionando la entrada estndar desde un fichero donde se guardan los parmetros. Estos parmetros se incluyen en este manual entre parntesis al lado de las explicaciones de las opciones de men. En este manual se explican los diferentes paneles de opciones que tiene el programa, de manera que los conceptos y el funcionamiento del simulador se explican a partir de estos paneles.

2 Configuracin de la red
El primer panel sirve para configurar la red de interconexin. Una red tiene tres partes bsicas: Topologa. En este apartado introducimos los aspectos estructurales de la red, es decir, parmetros como el nmero de canales, el nmero de nodos, las dimensiones, etc. Control de flujo. Se refiere al mecanismo mediante el cual se transfieren los paquetes de un nodo a otro. Encaminamiento. Es el algoritmo utilizado para establecer un camino desde un nodo actual hasta un destino.

En este panel hay un tercer apartado dedicado a los retrasos de los elementos de la red. Esta parte se encuentra entre la topologa y el control de flujo, por lo que se ha puesto de forma diferenciada.

2.1 Topologa
En este subapartado se describen las caractersticas fsicas de la red de interconexin de multicomputadores. Se toma como base siempre una red estrictamente ortogonal de tipo n-cubo k-aria (toro) que es la ms general dentro de las estrictamente ortogonales. Aunque la red malla no es un caso particular de este tipo de redes, se pueden utilizar

Simured: Simulador de redes de multicomputadores

tambin pues una red n-cubo k-aria es igual que una red malla siempre que el mecanismo de encaminamiento impida el paso en los canales de vuelta. Estos son los parmetros que se pueden modificar: Dimensiones. Son las dimensiones de la red. En principio no hay lmite. Debe ser siempre mayor que cero. (DIMENSIONS). Nodos por dimensin. Son los nodos de cada dimensin. Por ejemplo, una red con 2 dimensiones y 4 nodos por dimensin (red bicubo cuaternaria) tiene 16 nodos en total. Debe introducirse un valor mayor que cero. (NODOSDIM). Longitud del buffer. Esta es la longitud de las colas FIFO de entrada y salida por cada canal. Tanto las colas de entrada como las de salida tienen la misma longitud, por lo que no pueden asignarse longitudes diferentes a unas y otras. El valor debe ser mayor que cero. (LONBUFFER). Canales virtuales. Cada canal puede subdividirse en varios canales. Por defecto estos canales sern virtuales, es decir, comparten el mismo cable fsico pero cada uno tiene su propio buffer, por lo que funcionan como si fueran fsicos pero con el aumento de la latencia que conlleva compartir el mismo cable. Si realmente se quiere que estos canales sean fsicos, hay una opcin para ello (ver un poco despus en este mismo punto). (NUMVIRT). Bidireccional. Se puede especificar si los canales son bidireccionales o no. Hay que tener cuidado pues es posible que algunos algoritmos de encaminamiento no puedan encontrar un camino si el canal es unidireccional (el de orden de dimensin para mallas por ejemplo). (NUMDIR). Adelanto en buffer. En una cola fifo sencilla los flits van pasando de una posicin a la siguiente, pero si hay posiciones vacas en la cola se puede adelantar el flit hasta justo antes de la siguiente posicin ocupada, o directamente a la salida de la cola si sta est vaca. Este adelanto es la opcin por defecto, ya que es como funcionan normalmente las redes y se obtiene un mayor rendimiento. (FORWARDING). Canales fsicos. Si se selecciona esta opcin entonces los canales virtuales son realmente fsicos, es decir, cada canal virtual tiene su propio cable y por lo tanto la transmisin se realiza en paralelo junto con el resto de canales virtuales. (PHYSICAL).

2.2 Retrasos
Se han implementado 4 retrasos en la red. Estos retrasos se dan siempre en ciclos de reloj. Buffer. Es el tiempo necesario para pasar de una posicin de las colas fifo a la siguiente. Normalmente este tiempo es muy pequeo comparado con el resto, por lo que no se suele incluir en muchos simuladores; no porque sea despreciable, sino porque el tiempo de transmisin del paquete, al realizarse de forma segmentada, depende del mximo de este tiempo y del tiempo de atravesar el crossbar, y siempre suele ser el tiempo del crossbar mayor que este. (DELFIFO). Crossbar. Una vez establecido el camino interno en el encaminador, este tiempo es el que tarda un flit en atravesar el conmutador (crossbar). (DELCROSS).

Simured: Simulador de redes de multicomputadores

Conmutacin. Es el tiempo que se tarda en establecer el camino dentro del encaminador, es decir, el tiempo que se tarda en decidir qu camino tomar y configurar el conmutador para ello. (DELSWITCH). Canal. Es el tiempo que necesita un flit para atravesar el canal fsico. (DELCHANNEL).

2.3 Control de flujo (Conmutacin)


En este caso slo se ha implementado el control de flujo basado en el agujero de lombriz (wormhole switching). Algo parecido a conmutacin de paquetes VCT se puede obtener haciendo las colas fifo lo suficientemente grandes como para alojar un paquete entero. La conmutacin de circuitos se podra implementar pero dada la estructura interna del simulador, no sera una tarea simple. (SWITCH).

2.4 Encaminamiento
Realizar nuevos algoritmos de encaminamiento es muy sencillo a partir de las fuentes del simulador (red.cpp y red.h). Se han implementado 4 como ejemplo: Orden de dimensin para mallas. Este es el famoso algoritmo determinista llamado XY para el caso de mallas bidimensionales. Est libre de bloqueos mortales (deadlocks). Funciona tambin con varios canales virtuales, en cuyo caso elige uno al azar siempre que est libre. (ROUTING=0). Orden de dimensin para toros. Igual que el anterior pero para redes n-cubo karias. Este algoritmo presenta bloqueos mortales, por lo que se ha incluido como ejemplo para ver cmo el simulador detecta estos bloqueos y los muestra. (ROUTING=1). Duato para mallas. Se ha aplicado el protocolo de Duato utilizando un conjunto de canales vrtuales completamente adaptativo junto a otro conjunto libre de bloqueos mortales basado en XY. Se necesitan al menos dos canales virtuales (si slo se pone un canal virtual entonces este algoritmo es exactamente igual que el primero). (ROUTING=2). Completamente adaptativo para mallas. Este algoritmo elige cualquier canal libre que lleve al destino por un camino mnimo y sin preocuparse si se producirn bloqueos o no. Naturalmente puede presentar bloqueos mortales. (ROUTING=3).

3 Paquetes
En este apartado se muestran todas las opciones referidas a los paquetes y su generacin automtica, lectura de un fichero de trazas, etc. Se ha dividido en tres apartados, el de paquete, el de generacin a partir de trazas y el de generacin automtica.

3.1 Paquete
Longitud del paquete. Se refiere a la longitud de los datos del paquete. Se mide siempre en flits. (PACKLEN). Cabecera. Es la longitud de la cabecera. Por defecto est a cero. La longitud real del paquete ser la longitud anterior ms esta. Para lo nico que se utiliza esta longitud es para las estadsticas, pues en ellas se distingue entre datos y cabeza. Por defecto es cero. (PACKHEADLEN).

Simured: Simulador de redes de multicomputadores

3.2 Generacin de paquetes (trazas)


En este apartado podemos elegir si queremos obtener los paquetes a partir de un fichero de trazas. El formato de un fichero de trazas es el siguiente: para empezar se trata de un fichero texto normal y corriente. Cada lnea especifica la generacin de un paquete en la red o un comentario, si la lnea empieza por el carcter almohadilla (#). Cada lnea puede tener hasta cuatro campos numricos, los tres primeros son obligatorios y el cuarto es opcional. El primer campo es el ciclo absoluto de reloj en el que se producir el paquete, el segundo es el nodo origen, el tercero es el nodo destino y el cuarto, si est, indica la longitud del paquete. Los nodos estn numerados de 0 a n*k-1 donde n es el nmero de dimensiones y k el nmero de nodos por dimensin. Si se quiere utilizar un fichero de trazas, se debe especificar este fichero pulsando sobre el botn especificar fichero de trazas o eligindolo del men desplegable. (TRACENAME, USETRACE). En ocasiones es posible que queramos realizar una simulacin sin tener en cuenta las longitudes del fichero de trazas, para ello no ms que seleccionar la opcin No leer las longitudes. (NOREADLEN). La simulacin termina cuando se acaban los paquetes del fichero de trazas.

3.3 Generacin automtica


Si no tenemos un fichero de trazas se pueden generar los paquetes de forma automtica. Esta generacin consiste en mandar un paquete desde un origen a un destino, ambos aleatorios, segn una productividad dada en flits/ciclo/nodo. La eleccin de los nodos origen y destino es plana, es decir, cualquier nodo tiene la misma probabilidad de salir. La simulacin se prolonga hasta que se han enviado todos los paquetes especificados. Paquetes o Flits por nodo. Son las dos formas de especificar cuando debe terminar la simulacin. Si se elige paquetes entonces se debe introducir el nmero de paquetes que se introducirn en la red. Si se elige Flits por nodo, entonces se enviarn tantos paquetes como sean necesarios para alcanzar esa cantidad de flits por nodo. (PACKNUM). Productividad. Es la tasa de emisin de paquetes y se especifica en flits/ciclo/nodo. Este valor se tiene en cuenta en una simulacin simple o interactiva, pero si se utiliza una simulacin mltiple, este valor no se tiene en cuenta pues viene especificado en la propia simulacin interactiva. (PACKPROD).

4 Simulacin
Este panel tiene numerosas opciones y posibilidades dadas las mltiples alternativas que existen para simular la red. Las opciones por defecto vienen preparadas para realizar lo que se llama una simulacin mltiple, es decir, una simulacin en la que se van cambiando diferentes parmetros para poder hacer grficas comparativas. Existe otro tipo de simulacin muy interesante, la interactiva, que nos permite ver el estado de la red y los paquetes en cada instante.

Simured: Simulador de redes de multicomputadores

4.1 Simulacin mltiple


Esta es la simulacin establecida por defecto (JUSTONE=false). Durante su ejecucin no se puede ver la evolucin de la red. Slo se muestra la estructura de la red al principio pero no la evolucin de los paquetes. Si por alguna razn se interrumpe la ejecucin o se produce un interbloqueo, entonces s que se muestra el estado de la red en ese instante. El objetivo de esta simulacin en la de obtener estadsticas generales repitiendo los clculos variando hasta dos parmetros a un tiempo (uno dentro de otro). Estas estadsticas se pueden guardar en un fichero fcilmente importable desde cualquier herramienta de hoja de clculo. Este fichero tambin se puede leer desde el propio simulador para mostrar las grficas correspondientes. La simulacin mltiple se realiza variando hasta dos parmetros. El parmetro del bucle interior es siempre la productividad expresada en flits/ciclo/nodo (SIMUVAR=0). El segundo parmetro puede ser ninguno (SIMUVAR2=0), las dimensiones (SIMUVAR2=1), los nodos por dimensin (SIMUVAR2=2), la longitud del buffer (SIMUVAR2=3) y los canales virtuales (SIMUVAR2=4). Si no se especifica ninguna variable secundaria entonces se genera una grfica en funcin solamente de la productividad, si se especifica alguna de las posibles variables secundarias entonces se generan tantas grficas como puntos se hayan especificado para esta variable. Los valores de la variable del bucle interior (SIMUVAR) irn variando desde un valor inicial (LAVARINI) hasta un valor final (LAVARFIN) un nmero de veces dado (PUNTOS). La forma en que cambia la variable puede ser lineal (ESCALA=0) o logartmica (ESCALA=1). Los mismos parmetros existen para la segunda variable (SIMUVAR2, LAVARINI2, LAVARFIN2, PUNTOS y ESCALA). Pulsando el botn Simular Mltiple comienza la simulacin. La simulacin se puede parar pulsando sobre el botn Interrumpit. Una vez detenida una simulacin mltiple no se puede reanudar. Los resultados se pueden guardar a un fichero en formato CSV (campos separados por comas). Para ello se debe especificar un nombre de fichero y activar la casilla correspondiente. Por defecto, el fichero de resultados se sobrescribe con los nuevos valores de la simulacin. Si se quieren aadir nuevos datos a un fichero que ya tena resultados de simulaciones anteriores, pulsaremos sobre la opcin Aade los resultados al fichero; esto es interesante cuando se quieren mostrar grficas conjuntas provenientes de distintas simulaciones.

4.2 Simulacin Simple/Interactiva


En este mismo panel de simulacin tenemos la opcin Habilitar simulacin simple/interactiva (JUSTONE=true). Esta es la simulacin que permite ver la evolucin del los paquetes a travs de la red. Al pulsar sobre esta opcin aparece una ventana nueva donde se mostrar la red. En esta ventana estar activo el botn de Simular. Por defecto no se muestra la evolucin, por lo que si pulsamos sobre Simular se realizar una nica simulacin con los valores que se hubieran especificado. Para ver los paquetes hay que pulsar sobre la opcin Mostrar evolucin entonces veremos que se activa el botn Paso a paso y las opciones de Mostrar nmero de flit y Retraso entre ciclos.

Simured: Simulador de redes de multicomputadores

Una vez en el modo mostrar evolucin veremos que al simular aparecen los paquetes movindose por la red. Por defecto cada flit tiene un nmero segn su posicin y cada paquete se muestra en un color diferente. Se puede desactivar el que aparezca el nmero de flit clicando sobre la casilla Mostrar nmero de Flit. Mientras se muestra la evolucin de los paquetes, el intervalo de tiempo entre ciclo y ciclo se puede cambiar en la casilla retraso entre ciclos. Por defecto hay un intervalo de 100 milisegundos, pero se puede disminuir o aumentar para que vaya ms deprisa o para que se vea mejor la evolucin de los paquetes por la red. La simulacin mientras se muestran los paquetes se puede detener del todo pulsando el botn Interrumpir, pero se puede tambin detener un instante pulsando sobre Pausa o Paso a Paso. Si la simulacin est detenida se puede continuar con el botn Continuar o con el de Paso a Paso, si reanudamos la simulacin con este ltimo botn, entonces slo se ejecutar un ciclo y volver a detenerse. Buffer interno entrada

Crossbar/Switch

Buffer entrada

Buffer interno salida

Buffer salida

Canal

Fig. 1: Detalle de una porcin de la red mostrando dos encaminadores y varios paquetes En la simulacin realizada desde la lnea de comandos no se muestra nada, por lo que la nica diferencia de esta simulacin respecto de la mltiple es que slo se realiza una vez tomando los valores originales de la simulacin y no los de las variables de la simulacin mltiple.

5 Grfico
En la versin visual se tiene la posibilidad de leer el fichero de resultados CSV mostrando las grficas en una ventana adicional. Una vez cargado el fichero de resultados se pueden elegir los parmetros tanto del eje X como del Y. Se han puesto unos valores por defecto para poder ver la latencia media en funcin de la productividad. Cada grfica se muestra con un color y en la parte inferior izquierda se muestra la variable que cambia de grfica a grfica con el color correspondiente.

6 Misc.
En este ltimo panel se encuentra la opcin para cambiar el idioma. Tambin aparece la versin del programa, el autor y la web donde obtener las ltimas actualizaciones, documentacin, etc.

Simured: Simulador de redes de multicomputadores

7 Lnea de comandos
La versin para ser ejecutada por el intrprete de comandos (Unix shell o DOS) se llama simured_cmd. Los parmetros de la simulacin se toman de la entrada estndar y existen valores por defecto para todos ellos. Lo normal es redireccionar la entrada estndar para que tome los valores de un fichero de configuracin. Si no se redirecciona la entrada estndar habr que introducir los valores a mano y pulsar fin de fichero al terminar (Ctrl-D). Algunos valores estadsticos y los mensajes de simulacin se muestran por la salida estndar de error. Los resultados siguiendo el formato CSV (campos separados por comas) se sacan por la salida estndar, por lo que resulta interesante redireccionar la salida estndar a algn fichero para luego importalo a cualquier herramienta grfica. Un ejemplo de llamada al programa desde el intrprete de comandos sera: simured_cmd < simured.conf > resultados.csv

7.1 Fuentes de la versin en lnea de comandos


Las fuentes de esta versin estn la pgina del simulador (http://tapec.uv.es/simured). Estas fuentes consisten en un fichero tar comprimido que se puede compilar con el gcc tanto de Unix como de DOS (djgpp). Es posible que funcione con otros compiladores pues el cdigo es bastante estndar aunque seguramente no al 100%. Los ficheros que se tienen son los siguientes: simured_cmd.cpp Son las fuentes del front-end basado en lnea de comandos para el simulador que se encuentra en red.cpp. red.cpp Es el cdigo fuente del simulador. Aqu se definen todas las clases y mtodos para el movimiento de los paquetes por la red. Tanto la versin visual como la de texto comparten estas mismas fuentes. red.h Es el fichero de cabecera para red.cpp. simured_cmd Es el ejecutable para Linux (seguramente necesita varias bibliotecas). simured_cmd.exe Es el ejecutable para DOS (seguramente no necesita ninguna biblioteca dinmica). simured.conf Es un fichero de configuracin de ejemplo con todos los parmetros que necesita el simulador. Makefile Con este Makefile slo se necesita hacer make y compila todo, tanto en Linux como en DOS. README.txt Un fichero de descripcin que contiene un texto muy parecido a este. simured.pdf El manual en castellano. La instalacin consiste en copiar el ejecutable en cualquier directorio y nada ms. Si se hacen cambios en las fuentes del programa basta con hacer make para generar el nuevo ejecutable. Si se usa cualquier otro compilador distingo al gcc basta con modificar el Makefile para apartarlo al nuevo.

8 Referencias
1. Jos Duato, Sudhakar Yalamanchili y Lionel Ni. Interconnection Networks, an Engineering Approach. IEEE Computer Society Press. 1997. 2. Pgina web del simulador. http://simured.uv.es/

También podría gustarte