Simulador de redes de interconexión
Este simulador ha sido diseñado inicialmente por Duato pero desde su origen
ha sufrido numerosas modificaciones por diferentes investigadores. Actualmente
existen casi tantas versiones de este simulador como investigadores lo han
utilizado en sus estudios. La versión y programas incluidos aquí provienen de
las últimas modificaciones realizadas por Juan Manuel Orduña, habiéndose
realizado una pequeña adaptación para ser usadas en las prácticas de Ampliación
de Arquitectura de Computadores. La versión que aquí se incluye sólo permite la
conmutación wormhole para el envío de mensajes.
Existe un simulador parecido a este pero más amigable y fácil de usar llamado
SimuRed. También se puede encontrar una
lista de otros simuladores en
http://www.inrialpes.fr/planete/people/ernst/Documents/simulator.html
Los ficheros necesarios para la realización de las prácticas son los
siguientes:
- simunet Es el simulador en si. Se puede poner en
algún directorio del PATH o en el propio de trabajo. Es el único realmente
imprescindible, el resto de ficheros que se incluyen ayudan a entrar/mostrar
los datos del simulador.
- gentest.mi Es el fuente de un programa que genera
los parámetros que definen la simulación a realizar. Está escrito en modula 2
por lo que es imprescindible contar con el paquete "mocka" de linux para la
compilación de programas escritos en modula. La descripción de los parámetros
se realiza en el propio fuente que al compilarlo y ejecutarlo genera un
fichero que puede ser usado, mediante redirección, para la entrada de los
parámetros del simulador.
- plotlanza Es un programa que sirve para extraer
los datos de los resultados de la simulación de manera que puedan ser trazados
con el gnuplot. De hecho, el programa muestra la gráfica de la latencia media
en función de la productividad llamando automáticamente al gnuplot. Se pueden
mostrar otras cosas modificando el fichero. Debe estar en el directorio de
trabajo.
- gengraf Es un programa que sirve para extraer datos
de los resultados de simulación y pasarlos a un formato que entiende el
gnuplot. El programa plotlanza llama a este como parte de su ejecución. Debe
estar en el directorio de trabajo.
- progr Es el fichero de comandos para que el awk pueda
extraer los datos seleccionados de los resultados de simulación. Es utilizado
por gengraf. Debe estar en el directorio de trabajo.
- plotcom es el fichero de comandos del gnuplot para
que se imprima la gráfica por pantalla y a un fichero postcript (grafica.ps).
Se puede cambiar para crear gráficas más elaboradas. Debe estar en el
directorio de trabajo.
La instalación consiste en copiar todos estos ficheros en un directorio que
será donde realicemos la simulación. Sólo el programa simunet lo podremos
colocar en cualquier sitio del PATH.
Para que los programas funcionen es necesario contar con un compilador de
modula (mocka por ejemplo) para la generación de los valores de
simulación, el programa gnuplot para las gráficas, y el programa awk
para extraer los datos del fichero de resultados.
El fichero mocka-9905-3.i386.rpm contiene
el rpm instalable en RedHat del compilador mocka de modula2. SuSe ya trae mocka
a partir de la distribución 7.1.
Una simulación cualquiera que se quiera realizar seguiría los siguientes
pasos:
- Modificaríamos el fichero "gentest.mi" para poner los parámetros de
simulación que se quieran. Entre estos parámetros se pone también el nombre de
fichero de salida. Supongamos que lo llamamos "param.in".
- A continuación se compila el fichero "gentest.mi" y se ejecuta, dando como
resultado los ficheros "param.in" y "testparam.in".
- Luego se ejecuta el simulador tomando como entrada el fichero "testparam.in",
es decir, se hace "simunet < testparam.in". Esta ejecución previa nos permite
conocer la productividad a partir de la cual la red se satura.
- Con la productividad obtenida del ejemplo anterior modificamos, si se cree
conveniente, el fichero "gentest.mi" compilándolo y ejecutándolo de nuevo.
- Una vez establecida la productividad máxima, se ejecutará por fin la
simulación completa utilizando el fichero "param.in" que acabamos de obtener.
Los resultados los redireccionaremos a un fichero cualquiera, por ejemplo,
"resultados". Es decir, hay que ejecutar "simunet < param.in > resultados".
Esta ejecución puede tardar un rato, dependiendo de los parámetros elegidos
para la simulación.
- El fichero resultados contiene los valores obtenidos de la simulación para
cada productividad. Se puede por tanto realizar una gráfica de alguno de estos
valores en función de la productividad o de cualquier otro parámetro que
también cambie. Para ello utilizaremos el programa "plotlanza", especificando
un nombre de fichero, es decir, haríamos "plotlanza resultados". Esto genera
el fichero "graftmp.dat" que contiene los datos que luego usa gnuplot para
realizar la gráfica y generar el fichero "grafica.ps".
Última actualización: