Low-Memory Techniques for Routing and Fault-Tolerance on the Fat-Tree Topology

Actualmente, los clusteres de PCs estan considerados como una alternativa eficiente a la hora de construir supercomputadores en los que miles de nodos de computacion se conectan mediante una red de interconexion. La red de interconexion tiene que ser disenada cuidadosamente, puesto que tiene una gran influencia sobre las prestaciones globales del sistema. Dos de los principales parametros de diseno de las redes de interconexion son la topologia y el encaminamiento. La topologia define la interconexion de los elementos de la red entre si, y entre estos y los nodos de computacion. Por su parte, el encaminamiento define los caminos que siguen los paquetes a traves de la red. Las prestaciones han sido tradicionalmente la principal metrica a la hora de evaluar las redes de interconexion. Sin embargo, hoy en dia hay que considerar dos metricas adicionales: el coste y la tolerancia a fallos. Las redes de interconexion ademas de escalar en prestaciones tambien deben hacerlo en coste. Es decir, no solo tienen que mantener su productividad conforme aumenta el tamano de la red, sino que tienen que hacerlo sin incrementar sobremanera su coste. Por otra parte, conforme se incrementa el numero de nodos en las maquinas de tipo cluster, la red de interconexion debe crecer en concordancia. Este incremento en el numero de elementos de la red de interconexion aumenta la probabilidad de aparicion de fallos, y por lo tanto, la tolerancia a fallos es practicamente obligatoria para las redes de interconexion actuales. Esta tesis se centra en la topologia fat-tree, ya que es una de las topologias mas comunmente usadas en los clusteres. El objetivo de esta tesis es aprovechar sus caracteristicas particulares para proporcionar tolerancia a fallos y un algoritmo de encaminamiento capaz de equilibrar la carga de la red proporcionando una buena solucion de compromiso entre las prestaciones y el coste. Primero, nos centramos en la tolerancia a fallos en la topologia fat-tree. Muchos de los trabajos dedicados a este tema proporcionan tolerancia a fallos a cambio de anadir recursos a la red; ya sean encaminadores, enlaces o canales virtuales. Al contrario que estos trabajos, nuestra propuesta proporciona el mismo nivel de tolerancia a fallos sin incrementar los recursos de la red, aprovechando la abundancia de caminos equivalentes disponibles en el fat-tree. En concreto, se ha definido un mecanismo que evita que se usen aquellos caminos que lleven a los elementos fallidos, de forma que los paquetes que fuesen a tomar uno de dichos caminos son desviados hacia su destino por caminos que no contengan elementos fallidos. Dado que todos los caminos que no han sufrido un fallo pueden ser usados sin ninguna restriccion, el mecanismo propuesto presenta una degradacion de prestaciones minima ante la presencia de fallos, proporcionando el maximo nivel de tolerancia a fallos posible sin anadir nuevos recursos a la red. A continuacion, nos centramos en el diseno de un algoritmo de encaminamiento determinista que pueda competir en prestaciones con los algoritmos de encaminamiento adaptativos usados en la topologia fat-tree. Pese a que los algoritmos adaptativos requieren mas recursos que los deterministas a la hora de ser implementados, los algoritmos adaptativos suelen tener unas prestaciones mayores que los deterministas. En nuestro trabajo presentamos un algoritmo de encaminamiento determinista que puede obtener prestaciones similares, o mayores al forzar la entrega en orden de los paquetes, que el mejor algoritmo de encaminamiento adaptativo, pero a un coste menor. Finalmente, nos aprovechamos de ciertas caracteristicas de dicho algoritmo de encaminamiento determinista para simplificar la topologia fat-tree. Esta topologia reduce a la mitad los recursos necesarios para construir un fat-tree, a la vez que proporciona en muchos casos las mismas prestaciones. En general, la relacion coste/prestaciones de la nueva topologia es casi la mitad que la del fat-tree.