Descripción
La tecnología SDN (Software Defined Networking) es un paradigma que surge para facilitar el control y gestión de las redes de interconexión de computadores. La base de esta nueva metodología es la separación del plano de control, dedicado al establecimiento de reglas de encaminamiento, filtrado, etc., del plano de datos, cuya función es el reenvío de los mensajes de datos, en función de la reglas establecidas por el plano de control, en una red de computadores. De esta forma la administración de la red se centraliza en un módulo llamado controlador, que se encarga del establecimiento de las reglas de encaminamiento y su comunicación a los nodos de red mediante un protocolo, como el estándar OpenFlow. De esta forma la lógica de los nodos de red solo se encarga de: buscar una correlación entre el mensaje que recibe el dispositivo, y las reglas en él programadas por el controlador; y en caso de coincidencia aplicar la acción asociada a cada regla.
Esto tiene varios beneficios: por un lado la reducción del sobreflujo de control asociado a protocolos de control como STP, ARP, DHCP, etc., que ahora pueden ser eliminados de la red, implementando dichos servicios en el controlador; por otra parte, el controlador puede ejecutar algoritmos más elaborados, explotando incluso técnicas de minería de datos, e inteligencia artificial, para el establecimiento de las reglas en cada uno de los dispositivos de red, según el conocimiento de la topología de red que él mismo posee. Este conocimiento de la topología, la posibilidad de ejecutar un algoritmo centralizado para determinar las rutas de comunicación entre nodos, e incluso la reserva de ancho de banda entre los mismo es una característica muy a tener en cuenta en redes de interconexión para aplicaciones de altas prestaciones. Por lo que en la actualidad SDN es una tecnología muy utilizada en centros de datos y clouds.
El uso de SDN beneficiaría las prestaciones de software implementado para sistemas distribuidos bajo el paradigma de Computación de Altas Prestaciones (HPC en sus siglas en inglés), y en particular implementado sobre la librería de comunicaciones Message Passing Interface (MPI), reduciendo los tiempos de comunicación y redundando en una mejora de las prestaciones. Software de este tipo lo encontramos en infinidad de aplicaciones de ciencia e ingeniería tales como: simulación de tiempo meteorológico, simulación de materiales, simulación para el desarrollo de prototipos industriales, etc.
Objetivos:
Para este TFG, el objetivo general será el despliegue de una infraestructura de red basada en SDN para la interconexión de distintos nodos de computación sobre los que se ejecutará una aplicación sencilla implementada sobre MPI tanto con llamadas básicas, avanzadas y con la librería ScaLAPACK. Esta aplicación sencilla que nos permita entender de manera completa como MPI organiza sus comunicaciones, la influencia de la topología en las mismas, etc vendrá dada por el producto de matrices.
Este objetivo general se desglosa en los siguientes subobjetivos:
-
Despliegue de la infraestructura de red compuesta por switches con soporte OpenFlow.
-
Instalación, arranque y configuración del controlador SDN.
-
Implementación de las diferentes aproximaciones del producto de matrices.
-
Verificación del funcionamiento general del sistema y optimización del mismo si procede.