DE102013111341A1 - Blockierungsfreies routing in fat-tree-netzwerken - Google Patents

Blockierungsfreies routing in fat-tree-netzwerken Download PDF

Info

Publication number
DE102013111341A1
DE102013111341A1 DE102013111341.9A DE102013111341A DE102013111341A1 DE 102013111341 A1 DE102013111341 A1 DE 102013111341A1 DE 102013111341 A DE102013111341 A DE 102013111341A DE 102013111341 A1 DE102013111341 A1 DE 102013111341A1
Authority
DE
Germany
Prior art keywords
route
switch
network
switches
routing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102013111341.9A
Other languages
English (en)
Inventor
Cyriel Minkenberg
German Rodriguez Herrera
Gusat Mitch
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102013111341A1 publication Critical patent/DE102013111341A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation

Abstract

Es werden Verfahren und eine Vorrichtung zum Routing von Datenpaketen zwischen Source- und Destination-Switches 1 in einem Fat-Tree-Netzwerk 10 bereitgestellt. Es wird für jedes Paket eine Route mit drei oder weniger Routing-Phasen ausgewählt, derart, dass die Route dem kürzesten Pfad über das Netzwerk 10 zwischen dem Source- und dem Destination-Switch folgt. Das Datenpaket wird von dem Source-Switch an den Destination-Switch über die besagte Route auf einem von einem ersten und einem zweiten virtuellen Kanal gesendet, bis die Route eine vorgegebene einer Abwärts-Aufwärts-Umkehrung oder einer Aufwärts-Abwärts-Umkehrung aufweist. Wenn die Route die vorgegebene einer Abwärts-Aufwärts-Umkehrung oder einer Aufwärts-Abwärts-Umkehrung aufweist, wird das Datenpaket über die Route auf dem ersten virtuellen Kanal bis zu Switch 1 gesendet, an dem die Umkehrung auftritt, und ab diesem Switch auf dem zweiten virtuellen Kanal gesendet. Dadurch wird volle Konnektivität in Fat-Tree-Netzwerken mit einer blockierungsfreien Funktion bereitgestellt. Direkte Fat-Tree-Netzwerke, in denen Endknoten mit Switches in einer Vielzahl von Ebenen der Fat-Tree-Topologie verbunden sind, werden ebenfalls bereitgestellt.

Description

  • Diese Erfindung betrifft im Allgemeinen blockierungsfreies Routing in Fat-Tree-Netzwerken.
  • Fat-Tree-Netzwerke sind hierarchische, rekursiv konstruierte Netzwerke, die mehrere Switches aufweisen, die in einer baumähnlichen Topologie mit mehreren Roots verbunden sind. Diese Netzwerke sind weitreichend beliebt und werden in vielen modernen Hochleistungsdatenverarbeitungssystemen sowie gewerblichen Datenzentruminstallationen verwendet. Es gibt eine Reihe verschiedener Formen der Fat-Tree-Technologie, die grundlegenden Prinzipien dieser Netzwerke können dabei 1 der begleitenden Zeichnungen entnommen werden. Diese zeigt ein Beispiel eines speziellen, sehr weit verbreiteten Fat-Tree-Netzwerkes, das als „k-närer n-Baum“ bekannt ist. In dieser Darstellung ist k die Radix des Baumes (d.h. die Anzahl an „Nachfolgern“ (children) und/oder „Vorgängern“ (parents) auf jeder Ebene), und n ist die Anzahl an Ebenen. Ein k-närer n-Baum besitzt n Ebenen an Switches, wobei jeder Switch einen Radix 2k aufweist, wobei die Hälfte der Anschlüsse eine Verbindung nach unten und die andere Hälfte eine Verbindung nach oben aufweist. (Die Switches in der obersten Ebene (d.h. die Roots des Baumes) erfordern im Prinzip lediglich eine Radix k, da sie keine Vorgänger (parents) besitzen. In der Praxis sind diese Anschlüsse jedoch möglicherweise vorhanden und nicht verbunden, um zukünftige Netzwerkerweiterungen zu ermöglichen). Bei dem in 1 dargestellten Netzwerk handelt es sich um einen binären 4-Baum, wobei k = 2 und n = 4 ist, bei dem die Kästchen die Switches und die Linien dazwischen die zwischen den Switches vorhandenen Verbindungen darstellen. Die Switches bilden ein Verbindungsnetzwerk einer indirekten Netzwerktopologie, d.h. die Endknoten (Datenverarbeitungsknoten, Server usw.) sind an den Kanten des Netzwerkes verbunden, wodurch eine klare Unterscheidung zwischen Datenverarbeitung und Netzwerkverbindung geschaffen wird. Die Endknoten in 1 werden durch Kreise dargestellt, und sie stellen eine Verbindung zu der unteren Schicht an Switches, d.h. die Blätter (Leaves) der Baumtopologie dar.
  • In Fat-Tree-Netzwerken können Pakete können mittels einer einfachen Routing-Verfahrensweise, bei der zwei Routing-Phasen beteiligt sind, zwischen jedem beliebigen Paar aus Endknoten gesendet werden. Bei der ersten Routing-Phase handelt es sich um eine „Aufwärts-Phase“ („up-phase“), bei der die Route einem oder mehreren Sprüngen von Switch zu Switch („switch-to-switch hops“) in Aufwärtsrichtung (d.h. in Richtung der Roots) der Topologie folgt. Danach folgt eine „Abwärts-Phase”, bei der die Route einem oder mehreren Sprüngen von Switch zu Switch in Abwärtsrichtung der Topologie folgt. Mit dieser Routing-Strategie erfolgt ganz geradliniges Routing auf dem kürzesten Pfad und, da Routen lediglich Aufwärts/Abwärtsumkehrungen und nicht Abwärts/Aufwärtsumkehrungen aufweisen, wird Blockierung verhindert. (Blockierung kann auftreten, wenn in dem Kanalabhängigkeitsgraphen zyklische Abhängigkeiten zwischen Ressourcen auftreten, da dies zu einem nicht auflösbaren Konflikt zwischen Ressourcenanfragen während des Netzwerkbetriebes führen kann. Des Weiteren sind auch mehrere Pfade gleicher Länge zwischen jeder beliebigen Source (Quelle) und Destination (Ziel) vorhanden (die nicht mit dem Switch desselben Leaf verbunden sind), wodurch während des Netzwerkbetriebes Multi-Pathing und Lastverteilung möglich werden. Darüber hinaus bieten Fat-Tree-Netzwerke eine hohe Bisektionsbandbreite, und die hierarchische Struktur ist problemlos auf sehr große Netzwerke skalierbar.
  • Aufgrund der indirekten Beschaffenheit von Fat-Tree-Netzwerken befassen sich Routing-Algorithmen für diese Netzwerke ausschließlich mit dem Verkehr, der von einem Endknoten zu einem anderen fließt, und sie stellen keine Konnektivität von einem beliebigen Switch zu irgendeinem anderen Switch in dem Netzwerk bereit. Volle „Switch-to-Switch“-Konnektivität würde die Verwendung von Routen mit Abwärts/Aufwärtsumkehrungen erfordern, und diese Umkehrungen können Blockierung in dem Netzwerk verursachen, welche es unter allen Umständen zu verhindern gilt. Dennoch kann direkte „Switch-to-Switch“-Konnektivität für mehrere Netzwerkverwaltungsfunktionen äußerst vorteilhaft sein, wie zum Beispiel für Änderungen der Kommunikationstopologie (Hinzufügung oder Entfernung von Knoten und/oder Switches), Verteilung von lokalen Standardereignissen (z.B. Unterbrechung einer Verbindung) und Diagnostik (Messlatenz oder Durchsatz zwischen einem arbiträren Switch-Paar). Darüber hinaus weisen gegenwärtig verfügbare InfiniBand-Switches oftmals einen eingebetteten Subnet-Manager auf, der Konnektivität mit allen Switches in dem Netzwerk benötigt (InfiniBand ist eine Handelsmarke der InfiniBand Trade Association).
  • Ein Vorschlag für volle Konnektivität in Fat-Tree-Netzwerken wird in "sFtree: A fully connected and deadlock-free switch-to-switch routing algorithm for fat-trees", Bogdanski et al., ACM Trans. Architecture and Code Optimization, Bd. 8, Nr. 4, Jan. 2012 beschrieben. Dieser Vorschlag beschreibt einen bestimmten umgekehrten Unterbaum innerhalb der indirekten Gesamtnetzwerktopologie, bei dem während des Routing Abwärts-/Aufwärtsumkehrungen auftreten können. Sollte herkömmliches Zweiphasen-Aufwärts-Abwärts-Routing keine Konnektivität zwischen einem Source- und einem Destination-Switch herstellen können, wird eine Vierphasen-Aufwärts-Abwärts-Aufwärts-Abwärts-Route verwendet, bei der die Abwärts-/Aufwärtsumkehrung in dem festgelegten Unterbaum auftreten. Dadurch wird blockierungsfreies Routing durch Routenbeschränkung gewährleistet, um Hardware-Modifizierungen wie beispielsweise die Verwendung von virtuellen Kanälen zu verhindern, die die Autoren für diese Netzwerke als nicht wünschenswert erachten. Bei dem vorgeschlagenen Routing-Verfahren handelt es sich weder um den kürzesten Pfad, noch wird seine Pfaddiversität vollends ausgeschöpft. Darüber hinaus ist das Netzwerk, da es sich auf den „Switch-to-Switch“-Verkehr in einem umgekehrten Unterbaum konzentriert, anfällig für Verstopfungseffekte und Konnektivitätsverlust aufgrund von Netzwerkfehlern.
  • Es sind verschiedene Mechanismen zur Vermeidung von Blockierung in Netzwerken allgemein, einschließlich der Verwendung von virtuellen Kanälen (d.h. Partitionieren von Ressourcen wie beispielsweise Switch-Puffern und Verbindungen, um mehrere Logikkanäle innerhalb eines physischen Kanals bereitzustellen), sowie Mechanismen zur Datenflusssteuerung wie beispielsweise Injection Restriction bekannt, um zu verhindern, dass irgendeine einzelne Ressource die Übertragung beendet. Die Verwendung virtueller Kanäle zur Vermeidung von Blockierung in einer arbiträren „Node-to-Node“-Netzwerktopologie wird in „Deadlock-free Oblivious Routing for Arbitrary Topologies", Domke et al., in den Konferenzunterlagen des 25th IEEE International Parallel & Distributed Processing Symposium (IPDPS), Anchorage, USA, S. 613–624, Mai 2011, behandelt. Darin wird ein komplexes System auf der Grundlage einer detaillierten Analyse der Netzwerktopologie vorgeschlagen. Diese sowie ähnliche Algorithmen benötigen typischerweise zwei bis zwölf virtuelle Kanäle, um Blockierungsfreiheit zu gewährleisten. „Effective Methodology for Deadlock-Free Minimal Routing in InfiniBand Networks", Sancho et al., in Unterlagen der IEEE International Conference on Parallel Processing (ICPP), Vancouver, Kanada, S. 409–418, Aug. 2002, offenbart die Verwendung von virtuellen Kanälen und Dienstebenen zum blockierungsfreien Routing in InfiniBand-Netzwerken. Dies erfordert eine komplexe Netzwerkanalyse unter Einbeziehung minimaler Pfadberechnung und Abbilden (mapping) auf einen Spannbaum der arbiträren Topologie, wobei virtuelle Kanäle, falls verfügbar, zugewiesen werden, um die Blockierung aufzuheben. Diese verschiedenen Techniken für arbiträre Topologien resultieren in einer schlechten Leistung in Fat-Tree-Netzwerken, da sie die Multipath-Fähigkeiten des Baumes nicht ausnutzen können.
  • Ein Aspekt der vorliegenden Erfindung stellt ein Verfahren zum Routen von Datenpaketen zwischen Source- und Destination-Switches in einem Fat-Tree-Netzwerk bereit. Das Verfahren weist auf:
    Auswählen einer Route für jedes Paket, die drei oder weniger Routingphasen aufweist, so dass die Route dem kürzesten Pfad über das Netzwerk zwischen dem Source- und Destination-Switch folgt, d.h. zwischen dem Source-Switch und dem Destination-Switch für die ausgewählte Route;
    Senden des Datenpaketes von dem Source-Switch an den Destination-Switch über die Route auf einem des ersten oder zweiten virtuellen Kanals, es sei denn, die Route weist eine vorgegebene einer Abwärts-Aufwärts-Umkehrung oder einer Aufwärts-Abwärts-Umkehrung auf; und
    falls die Route die vorgegebene einer Abwärts-Aufwärts-Umkehrung oder einer Aufwärts-Abwärts-Umkehrung aufweist, Senden des Datenpaketes über die Route auf dem ersten virtuellen Kanal bis zu dem Switch, an dem die Umkehrung auftritt, und auf dem zweiten virtuellen Kanal ab diesem Switch.
  • Bei dem diese Erfindung ausführenden Routing-Verfahren besitzen alle Routen drei oder weniger Routing-Phasen. Dadurch sind sechs mögliche Kombinationen von Routing-Phasen: aufwärts, abwärts, aufwärts-abwärts, abwärts-aufwärts, aufwärts-abwärts-aufwärts und abwärts-aufwärts-abwärts möglich. Für Routen kann jede beliebige dieser sechs Phasenkombinationen verwendet werden, für eine beliebige vorgegebene Route wird jedoch die geeignete Phasenkombination verwendet, so dass die Route einem kürzesten Pfad (d.h. einer minimalen Anzahl von Sprüngen (hops) zwischen Switches) zwischen der Quelle (source) und dem Ziel (destination) in der gesamten Netzwerktopologie folgt. Blockierung wird durch Verwenden zweier virtueller Kanäle für Routen verhindert, die einen vorgegebenen Typ von Umkehrung aufweisen. In einigen Ausführungsformen handelt es sich dabei um eine Abwärts-Aufwärts-Umkehrung. In anderen handelt es sich um eine Aufwärts-Abwärts-Umkehrung. Wenn die für ein Datenpaket ausgewählte Route diesen bestimmten Typ an Umkehrung aufweist, wird dieses Paket auf dem ersten virtuellen Kanal von der Quelle (source) bis zu dem Switch, an dem diese Umkehrung auftritt (der „Umkehrungs-Switch“), und auf dem zweiten virtuellen Kanal ab dem Umkehrungs-Switch bis zur Destination gesendet. Andere Routen können jeden der virtuellen Kanäle für die gesamte Route von Source zu Destination verwenden. Dadurch wird ein einfaches und dennoch höchst effizientes Routing-System bereitgestellt, das volle „Switch-to-Switch“-Konnektivität in Fat-Tree-Netzwerken gewährleistet. Es sind nicht mehr als drei Routing-Phasen für jede Route erforderlich, wobei die geeignete Phasenkombination verwendet wird, so dass stets die Route mit dem kürzesten Pfad für jedes beliebige Paar aus Source- und Destination-Switch ausgewählt wird. Vermeidung von Blockierung wird stets durch die Verwendung von lediglich zwei virtuellen Kanälen sichergestellt, d.h. nur ein Kanal mehr als der essentielle physische Kanal. Im Gegensatz zu dem Denkansatz von dem vorstehend erwähnten Bogdanski et al. bietet dieses einfache Zwei-Kanal-System bedeutsame Leistungsvorteile. Pfaddiversität in dem Fat-Tree-Netzwerk kann vollends ausgenutzt werden, während volle Konnektivität auf dem kürzesten Pfad erzielt wird. Latenz kann minimiert werden, während Effizienz durch Lastausgleich über mehrere Pfade weiter verbessert werden kann. Darüber hinaus werden sowohl Zuverlässigkeit als auch Effizienz durch Vermeidung von Pfadbeschränkungen verbessert: die Wahrscheinlichkeit von Verstopfungseffekten wird reduziert und Fehlertoleranz verbessert. Insgesamt bieten dementsprechend die die Erfindung ausführenden Routing-Verfahren einfaches, robustes und höchst effizientes Routing in komplett verbundenen Fat-Tree-Netzwerken.
  • In bevorzugten Ausführungsformen handelt es sich bei der vorgegebenen einer Abwärts-Aufwärts-Umkehrung oder einer Aufwärts-Abwärts-Umkehrung um eine Abwärts-Aufwärts-Umkehrung, wobei Pakete von dem ersten auf den zweiten virtuellen Kanal auf Routen wechseln, die eine Aufwärts/Abwärtsumkehrung aufweisen. In besonders einfachen Implementierungen werden Pakete auf dem ersten virtuellen Kanal für Routen gesendet, die die vorgegebene Umkehrung nicht aufweisen. Alle Pakete werden dann anfangs auf dem ersten Kanal gesendet und wechseln nur dann auf den zweiten Kanal, wenn eine Abwärts/Aufwärts-(oder alternativ dazu eine Aufwärts/Abwärtsumkehrung) durchgeführt wird.
  • Die Erfindung ausführende Routing-Verfahren können den Schritt des Berechnens der Routen für Datenpakete aufweisen. Im Allgemeinen können Routen vorab für Paare aus Switches in der Netzwerktopologie berechnet und anschließend als geeignet ausgewählt werden, oder Routen können dynamisch als Teil des Routen-Auswahlprozesses berechnet werden. Darüber hinaus können Routen in ihrer Gesamtheit zur Verwendung zwischen einem jeweiligen Source-Switch und einem jeweiligen Destination-Switch berechnet werden, oder Routen können Sprung für Sprung („hop-by-hop“) für aufeinanderfolgende Switches auf einer jeweiligen Route berechnet werden. Auf jeden Fall weisen bevorzugte Ausführungsformen Berechnen der Route für ein Datenpaket auf, indem für jeden Switch auf der Route die Richtung der Routingphase für den nächsten Sprung und der nächste Switch auf der Route in dieser Richtung bestimmt wird. Anschließend kann für jeden Switch auf der Route der virtuelle Kanal für den nächsten Sprung in Abhängigkeit von der Richtung bestimmt werden.
  • Werden Routen vorab z.B. Offline vor dem Netzwerkbetrieb berechnet, können die Erfindung ausführende Routing-Verfahren Auswählen der Route für ein Datenpaket unter Verwendung vorgegebener Routing-Daten aufweisen, die vorab berechnete Routen zwischen Paaren von Switches in dem Netzwerk anzeigen. Solche Routing-Daten können eine oder mehrere Datenstrukturen, z.B. Routing-Tabellen zum Zugriff durch Switches während des Netzwerkbetriebs aufweisen. Zu alternativen Ausführungsformen gehören
  • Berechnen der Route für jedes Datenpaket dynamisch während des Netzwerkbetriebes. Solch eine dynamische Routenberechnung kann im Allgemeinen für jedes Paket einzeln oder für Sätze von Datenpaketen, z.B. alle Pakete in einer jeweiligen Nachricht durchgeführt werden. In bevorzugten Ausführungsformen, die nachstehend beschrieben werden, wird dynamische Routenberechnung durch Berechnen der Route für jedes Datenpaket Sprung für Sprung („hop-by-hop“) an aufeinanderfolgenden Switches in dem Pfad durchgeführt.
  • Ein zweiter Aspekt der Erfindung stellt ein Computerprogramm bereit, das ein Programmcodemittel zum Veranlassen eines Prozessors eines Switch in einem Fat-Tree-Netzwerk aus gleichen Switches aufweist, zusammen mit den anderen Switches ein Verfahren gemäß dem ersten Aspekt der Erfindung durchzuführen.
  • Die Zuweisung virtueller Kanäle zur Paketübertragung auf jeweiligen Routen kann dynamisch während des Betriebes durchgeführt werden, entweder Sprung für Sprung („hop-by-hop“) in jedem Switch oder für eine Route an dem Source-Switch. Jedoch können sowohl die Routenberechnung als auch die Zuweisung von Routen an bestimmte virtuelle Kanäle, falls gewünscht, vorab z.B. von einem Netzwerkverwaltungsrechner vor Betrieb des Netzwerkes durchgeführt werden. Ein dritter Aspekt der Erfindung stellt dementsprechend ein computerimplementiertes Verfahren zum Festlegen des Routing von Datenpaketen zwischen Switches in einem Fat-Tree-Netzwerk bereit, wobei das Verfahren aufweist:
    zum Routing zwischen Paaren aus Source- und Destination-Switch, Auswählen jeweiliger Routen mit drei oder weniger Routing-Phasen, so dass jede Route einem kürzesten Pfad über das Netzwerk zwischen dem Source- und dem Destination-Switch folgt;
    Zuweisen jeder Route einem ersten und einem zweiten virtuellen Kanal von dem Source-Switch zu dem Destination-Switch, es sei denn, diese Route weist eine vorgegebene von einer Abwärts-Aufwärts-Umkehrung oder einer Aufwärts-Abwärts-Umkehrung auf; und
    wenn eine Route die vorgegebene von einer Abwärts-Aufwärts-Umkehrung oder einer Aufwärts-Abwärts-Umkehrung aufweist, Zuweisen der Route dem ersten virtuellen Kanal bis zu dem Switch, an dem die Umkehrung auftritt, und dem zweiten virtuellen Kanal ab diesem Switch.
  • Solch ein Verfahren kann Bereitstellen von Routing-Daten aufweisen, die jede Route und deren Zuordnung zu einem virtuellen Kanal anzeigen, zur Verwendung von Switches in dem Netzwerk, z.B. als Routing-Tabellen zum Zugriff durch Switches während des Netzwerkbetriebs.
  • Ein vierter Aspekt der Erfindung ist ein Programmcodemittel zum Veranlassen eines Computers, ein Verfahren gemäß dem dritten Aspekt der Erfindung durchzuführen. Es ist offensichtlich, dass der Begriff „Computer“ im allgemeinsten Sinne verwendet wird und jede(s) beliebige Einheit, Komponente oder System umfasst, das die Fähigkeit zur Datenverarbeitung zum Implementieren eines Computerprogramms besitzt. Darüber hinaus kann es sich bei einem Computerprogramm gemäß der Erfindung um ein unabhängiges Programm oder ein Element eines größeren Programms handeln, und es kann beispielsweise in einem computerlesbaren Medium wie beispielsweise einer Platte oder einer elektronischen Übertragung zum Laden auf einen Computer bereitgestellt werden. Das Programmcodemittel des Computerprogramms kann jeglichen Ausdruck in jeder beliebigen Sprache, jedem Code oder jeder Schreibweise, eines Satzes von Anweisungen aufweisen, die das Veranlassen eines Computers zum Durchführen des besagten Verfahrens entweder direkt oder nach (a) einer Umwandlung in eine andere Sprache, einen anderen Code oder eine andere Schreibweise und/oder (b) einer Wiedergabe in einer anderen wesentlichen Form beabsichtigen.
  • Ein fünfter Aspekt der Erfindung stellt ein Fat-Tree-Netzwerk bereit, das eine Vielzahl von Switches aufweist, die in einer Fat-Tree-Topologie verbunden sind, wobei die Switches so eingerichtet sind, dass sie ein Routing-Verfahren gemäß dem ersten Aspekt der Erfindung implementieren können. Ein weiterer Aspekt der Erfindung stellt einen Switch eines Fat-Tree-Netzwerkes gemäß dem fünften Aspekt der Erfindung bereit.
  • Wie bei herkömmlichen Fat-Tree-Netzwerken kann es sich bei einem den fünften Aspekt der Erfindung ausführenden Fat-Tree-Netzwerk um ein indirektes Netzwerk handeln. In diesem Fall kann jeder Switch auf einer untersten Ebene der Fat-Tree-Topologie mit wenigstens einem Endknoten verbunden sein. Die volle Konnektivität, die durch das Routing-Verfahren ermöglicht wird, kann anschließend für jede beliebige zwischen den Switches erforderliche Datenübertragung z.B. für Netzwerkverwaltungsfunktionen genutzt werden. Das „Switch-to-Switch“-Routingverfahren ermöglicht jedoch auch eine Erweiterung der herkömmlichen Nutzung von Fat-Tree-Topologien. So kann es sich insbesondere bei einem den fünften Aspekt der Erfindung ausführenden Fat-Tree-Netzwerk um ein direktes Netzwerk handeln. In solch einem direkten Fat-Tree-Netzwerk können Switches auf einer Vielzahl von Ebenen der Fat-Tree-Topologie jeweils mit wenigstens einem Endknoten verbunden sein. Demzufolge kann jeder Switch in dem Netzwerk mit einem oder mehreren Endknoten verbunden sein.
  • Im Allgemeinen können dort, wo hierin Merkmale in Bezug auf eine Ausführungsform eines Aspektes der Erfindung beschrieben werden, entsprechende Merkmale in Ausführungsformen eines weiteren Aspektes der Erfindung auf geeignete Weise bereitgestellt werden.
  • Im Folgenden werden bevorzugte Ausführungsformen der Erfindung im Sinne von Beispielen in Bezug auf die begleitenden Zeichnungen beschrieben, in denen:
  • 1 eine beispielhafte Fat-Tree-Netzwerktopologie darstellt;
  • 2 eine schematische Darstellung eines Switch zur Verwendung in Routing-Verfahren gemäß der Erfindung ist;
  • 3 Switch-Bezeichnungen in einem die Erfindung ausführenden Fat-Tree-Netzwerk veranschaulicht;
  • 4 Schritte anzeigt, die von einem die Erfindung ausführenden Routing-Verfahren implementiert werden;
  • Die 5 bis 10 beispielhafte Routen mit unterschiedlichen Kombinationen von Routing-Phasen darstellen, die mit dem Verfahren von 4 erzielt werden;
  • 11 ein Beispiel eines direkten die Erfindung ausführenden Fat-Tree-Netzwerkes darstellt; und
  • 12 ein Beispiel eines hybriden direkten/indirekten die Erfindung ausführenden Netzwerkes darstellt.
  • 2 ist ein vereinfachtes Schema eines Netzwerk-Switch 1 zum Implementieren von die Erfindung ausführenden Routing-Verfahren in einem Fat-Tree-Netzwerk. In diesem Beispiel besitzt der Switch 1 vier Anschlüsse zur Verbindung in einer binären Fat-Tree-Topologie wie die von 1. Die zwei aufwärts gerichteten Anschlüsse sind mit u1 und u2 gekennzeichnet, und die zwei abwärts gerichteten Anschlüsse sind mit d1 und d2 gekennzeichnet. Der Switch weist die gewöhnliche Netzwerkverschaltung (I/F) 2 zum Senden und Empfangen von Datenpaketen über Netzwerkverbindungen auf, die mit den Anschlüssen verbunden sind. Das Switch-Fabric 3 weist die gewöhnlichen Puffer und Verbindungen auf, über die ein empfangenes Paket den Switch zwischen dem Eingangsanschluss und dem geeigneten Ausgangsanschluss für seine Route über das Netzwerk durchquert. Dieser Prozess wird durch einen Switch-Controller 4 gesteuert. Das Switch-Fabric 3 unterstützt zwei virtuelle Kanäle, die mit VC0 und VC1 gekennzeichnet sind, für die Übertragung von Datenpaketen im Netzwerk. Somit sind durch eine logische Partitionierung von Puffern usw. unter der Steuerung des Switch-Controllers 4 auf die typische Weise, die physischen Ressourcen des Switch partitioniert, um zwei Logikkanäle auf derselben zugrundeliegenden Hardware bereitzustellen. Der Controller 4 steuert den Betrieb von Switch 1 im Allgemeinen und weist eine Routing-Logik 5 zum Implementieren der nachstehend im Einzelnen beschriebenen Routing-Funktion auf. Die Routing-Logik 5 kann im Allgemeinen in Hardware oder Software oder in einer Kombination daraus implementiert sein. In einigen Ausführungsformen kann die Routing-Logik von einem Prozessor implementiert sein (der im Allgemeinen einen oder mehreren konstituierende Prozessoren aufweisen kann), der im Allgemeinen von Software konfiguriert wird, um die beschriebenen Funktionen durchzuführen, und die geeignete Software ist den Fachleuten anhand der Beschreibung hierin bekannt. In der bestimmten zu beschreibenden Ausführungsform, bei der Routen-Berechnung dynamisch von den Switches 1 auf einer von Sprung zu Sprung („hop-by-hop“) basierenden Weise durchgeführt wird, wird die Routing-Logik 5 vorzugsweise in einer Hardware-Logik für einen schnellen Betrieb implementiert. Es sei nochmals darauf hingewiesen, dass den Fachleuten geeignete Implementierungen ohne Weiteres bekannt sind.
  • 3 zeigt ein erstes Beispiel eines die Erfindung ausführenden Netzwerkes. Dieses Netzwerk 10 wird anhand einer Vielzahl von gleichen Switches 1 gebildet, die in einer indirekten, binären 4-Baumtopologie verbunden sind. Demzufolge besitzt das Netzwerk 10 n = 4 Ebenen von Switches, mit einer Radix k = 2, womit ein Verbindungsnetzwerk zwischen den Endknoten 11 gebildet wird, die mit den Leaf-Switches auf der untersten Ebene 1 der Switch-Hierarchie verbunden sind. Die Switches 1 sind so eingerichtet, dass sie ein nachstehend im Einzelnen beschriebenes Routing-Verfahren implementieren, bei dem Datenpakete zwischen jedem beliebigen Paar von Switches im Netzwerk geroutet werden können. Dementsprechend kann Routing sowohl für „Node-to-Node“-Datenübertragungen zwischen den Endknoten 11 als auch für Datenübertragungen zwischen Switches zwischen zwei beliebigen Switches 1 durchgeführt werden. Datenpakete, für die Routing durchgeführt wird, können dementsprechend jeden beliebigen Datentyp umfassen, ungeachtet ob es sich dabei um Daten mit Ursprung in Endknoten, z.B. Benutzerdaten und/oder Daten handelt, die von Switches stammen, z.B. Steuerungs-/Verwaltungsdaten. Das zu beschreibende Routing-Verfahren ist in dieser Ausführungsform stellenbasiert, wobei jeder Switch 1 in dem Netzwerk durch seine Ebene und einer (n – 1)-stellenbasierten k-Bezeichnung identifiziert wird, die die Position des Switch auf dieser Ebene anzeigt. In dem in 3 dargestellten Beispiel, in dem n = 4 und k = 2 ist, wird jeder Switch innerhalb seiner Ebene durch die auf 3 Stellen basierende binäre Kennzeichnung, die in der Figur angezeigt wird, identifiziert. Die zwei Endknoten, die an jedem Leaf-Switch anliegen, können durch vier Bits wie angezeigt identifiziert werden, wobei es sich um die 3-Bit-Kennzeichnung des Leaf-Switch und ein zusätzliches Bit handelt.
  • Zum Routen von Datenpaketen zwischen einem jeden beliebigen Paar aus Source- und Destination-Switch in dem Netzwerk 10 implementiert die Routing-Logik 5 eines jeden Switch 1 einen nachstehend im Einzelnen beschriebenen Routing-Algorithmus, wobei Routen berechnet und den virtuellen Kanälen VC0, VC1 dynamisch Sprung für Sprung („hop-by-hop“) zugewiesen werden. In dieser Ausführungsform werden dementsprechend Routen über den gemeinsamen Betrieb von aufeinanderfolgenden Switches auf der Route von einem Source- zu einem Destination-Switch ausgewählt und virtuellen Kanälen zugewiesen. Die wichtigsten Schritte des von jedem Switch 1 implementierten Routing-Prozesses sind in dem Ablaufplan von 4 dargestellt. Der Prozess beginnt in Schritt 20, wenn ein Datenpaket zu einem bestimmten Destination-Switch geroutet werden soll. Dieses Paket wurde möglicherweise von einem vorhergehenden Switch an den aktuellen Switch auf der Route gesendet oder lokal an dem aktuellen Switch als Source-Switch erzeugt. In Schritt 21 ermittelt die Routing-Logik 5 zuerst die geeignete Richtung (d.h. aufwärts oder abwärts) der Routing-Phase für den nächsten Sprung auf der Route. Als Nächstes wählt die Routing-Logik in Schritt 22 einen bestimmten Parent- oder Child-Switch in der ausgewählten Richtung als nächsten Switch auf der Route aus. Wie dies nachstehend demonstriert wird, werden die Schritte 21 und 22 auf eine Weise durchgeführt, dass die ausgewählte Route immer dem kürzesten Pfad (kleinstmögliche Anzahl von Sprüngen zwischen Switches) zwischen Source- und Destination-Switches in der Gesamtnetzwerktopologie folgt. In Schritt 23 legt die Routing-Logik 5 anschließend den virtuellen Kanal fest, der für den nächsten Sprung zu verwenden ist. Die Zuweisung von virtuellen Kanälen hängt hier von der ausgewählten Routing-Richtung ab und wird gemäß den nachstehend erläuterten Prinzipien so durchgeführt, dass Blockierung während des Netzwerkbetriebs verhindert wird. In Schritt 24 wird das Paket über den geeigneten Anschluss an den nächsten Switch auf dem zugewiesenen virtuellen Kanal gesendet, und der Prozess ist abgeschlossen.
  • Im Folgenden werden die verschiedenen Schritte des Prozesses von 4 auf ausführlichere Weise beschrieben. Im Hinblick auf das erste Festlegen der Routing-Richtung in Schritt 21 wird dieser Schritt so durchgeführt, dass Routen jede beliebige Kombination aus drei oder weniger Routing-Phasen aufweisen können. Dementsprechend weisen alle Routen eine der folgenden Phasenkombinationen auf: aufwärts, abwärts, aufwärts-abwärts, abwärts-aufwärts, aufwärts-abwärts-aufwärts und abwärts-aufwärts-abwärts. Beim Durchführen von Schritt 21 stellt die Routing-Logik sicher, dass für jede Route die passende Phasenkombination verwendet wird, derart, dass die Route einem kürzesten Pfad über das Netzwerk folgt.
  • Schritt 22 von 4 wählt eine bestimmte Route mit einem kürzesten Pfad in der erforderlichen Richtung aus. Insbesondere ist die Netzwerktopologie so ausgelegt, dass für viele Paare aus Source- und Destination-Switch mehr als eine Route mit kürzestem Pfad vorhanden ist. In diesem Fall kann eine Reihe verschiedener Ansätze zur Pfadauswahl, die entweder statisch oder dynamisch sein können, zum Auswählen eines bestimmten kürzesten Pfades verwendet werden. Solche Ansätze sind auf dem Gebiet der Technik gut bekannt und müssen an dieser Stelle nicht beschrieben werden. Es genügt zu sagen, dass die von der Fat-Tree-Topologie gebotene Pfaddiversität in einem jeweiligen Szenario wie gewünscht ausgeschöpft werden kann.
  • Schritt 23 von 4 stellt blockierungsfreies Routing während des Betriebes von Netzwerk 10 sicher. Blockierung wird durch Wechseln der virtuellen Kanäle auf Routen verhindert, die einen vorgegebenen Typ von Umkehrung aufweisen. In der vorliegenden Ausführungsform handelt es sich dabei um eine Abwärts-Aufwärts-Abwärts-Umkehrung. Genauer gesagt wird, wenn die für ein Datenpaket ausgewählte Route eine Abwärts-Aufwärts-Umkehrung aufweist, das Paket auf einem ersten virtuellen Kanal, hier VC0, von dem Source-Switch bis zu dem Switch gesendet, an dem die Abwärts-Aufwärts-Umkehrung (der „Umkehrungs-Switch“) auftritt. Das Paket wird anschließend auf dem zweiten virtuellen Kanal, hier VC1, von dem Umkehrungs-Switch zu dem Destination-Switch gesendet. Routen, die keine Abwärts-Aufwärts-Umkehrung aufweisen, können entweder den einen oder den anderen virtuellen Kanal für die gesamte Route von Source zu Destination verwenden. In der vorliegenden Ausführungsform verwenden solche Routen Kanal VV0, wobei alle Routen VC0 wenigstens anfangs folgen, wobei Routen, die eine Abwärts/Aufwärts-Umkehrung aufweisen, an dem Umkehrungs-Switch zu VC1 wechseln. Dieser Ansatz zum Zuweisen von Routen zu virtuellen Kanälen garantiert einen blockierungsfreien Betrieb durch Verhindern von zyklischen Abhängigkeiten in dem Kanalabhängigkeitsgraphen.
  • Ein beispielhafter Routing-Algorithmus zur Implementierung in der Routing-Logik 5 zum Durchführen der vorstehenden Schritte wird durch den nachstehenden Pseudo-Code definiert. In diesem Code:
    zeigt L(s) die Ebene des Switch s an, 1 ≤ L(s) ≤ n;
    Jeder Switch wird von einer (n – 1)-stelligen Zahl identifiziert, wobei die Stellen von 1 bis n – 1 nummeriert sind, wobei die Stelle 1 (am weitesten rechts) die am wenigsten signifikante und die Stelle n – 1 (am weitesten links) die am meisten signifikante ist;
    Di(s) zeigt die ite Stelle von Switch s an, 1 ≤ Di(s) < k, 1 ≤ i ≤ n – 1
    c bezeichnet die aktuelle Switch-Position;
    d bezeichnet die Position des Destination-Switch;
    MSD(c, d) = am meisten signifikant abweichende Stelle zwischen c und d; und
    LSD(c, d) = am wenigsten signifikant abweichende Stelle zwischen c und d Schritt 21: Routing-Richtung festlegen
    Figure DE102013111341A1_0002
    Figure DE102013111341A1_0003
  • Es ist ersichtlich, dass das Ergebnis von Schritt 21 über diesen Algorithmus von der Position des Destination-Switch in Bezug auf den aktuellen Switch in der Gesamtnetzwerktopologie abhängt. Mit der Auswahl der anfänglichen Routing-Richtung an dem Source-Switch wird effektiv die bestimmte eine der sechs zulässigen Phasenkombinationen ausgewählt, die den kürzesten Weg wie vorstehend beschrieben liefert. Schritt 22: Nächsten Switch auswählen
    Figure DE102013111341A1_0004
    Figure DE102013111341A1_0005
  • Es ist ersichtlich, dass das Ergebnis von Schritt 22 über diesen Algorithmus sowohl von den relativen Positionen der aktuellen Source- und Destination-Switches als auch der aktuellen Routing-Richtung abhängt. Schritt 23: Zuweisung virtueller Kanäle
    Figure DE102013111341A1_0006
  • Mit dem vorstehenden Algorithmus kann der Destination-Switch für ein jeweiliges Paket in dem Paket durch seine Ebene und seine 3-stellige Positionsbezeichnung angezeigt werden, die in 3 dargestellt sind. Der aktuelle virtuelle Kanal VC wird in dem Paket durch ein 1-Bit-Flag angezeigt. Die aktuelle Routing-Richtung kann in dem Paket angezeigt oder anhand eines Switch von dem empfangenden Anschluss ermittelt werden, d.h. ob der empfangende Anschluss aufwärts oder abwärts gerichtet ist.
  • Die 5 bis 10 zeigen Beispiele von Routen, die mit dem vorstehend beschriebenen Verfahren für jede der sechs unterschiedlichen Kombinationen von Routing-Phasen erhalten werden. Das Routing auf VC0 ist mit gestrichelten Routen-Linien angezeigt und das Routing auf VC1 ist mit durchgehenden Routen-Linien angezeigt. Die 5 und 6 zeigen Einphasen-Routen jeweils aufwärts und abwärts. In beiden Fällen findet das Routing-Verfahren den einzigen kürzesten Pfad bis zu dem Destination-Switch und Routen auf VC0. 7 veranschaulicht eine Zweiphasen-Route aufwärts-abwärts, VC0 zugewiesen. Hier gibt es vier alternative kürzeste Pfade, über Switches der Ebene 3 s(3; 0xy), wobei x und y jeden binären Wert annehmen können, wie dies durch die gepunkteten Linien in der Figur dargestellt wird. Die Route über s(3; 011) wird hier von dem Pfadauswahlansatz ausgewählt. 8 veranschaulicht eine Zweiphasen-Route abwärts-aufwärts. Die Route weist eine abwärts-aufwärts-Umkehrung auf und wird dementsprechend VC0 bis zu dem Umkehrungs-Switch s(1; 010), und von diesem Switch bis zum Destination-Switch VC1 zugewiesen. Hierbei gibt es erneut vier alternative kürzeste Pfade, über die Switches von Ebene 1 s(1; 0xy), wobei in diesem Fall die Route über s(1; 010) ausgewählt wird. 9 veranschaulicht eine Dreiphasen-Route aufwärts-abwärts-aufwärts. In diesem Fall gibt es acht alternative kürzeste Pfade, über die Switches von Ebene 4 s(4; x00) und Switches von Ebene 1 s(1; 1yz), wobei z ebenfalls jeden binären Wert annehmen kann. Hier wird die Route über s(4; 100) und s(1; 100) ausgewählt. Diese Route weist eine Abwärts-Aufwärts-Umkehrung auf und wird dementsprechend VC0 bis zu dem Umkehrungs-Switch s(1; 100), und ab diesem Switch VC1 zugewiesen. 10 zeigt eine Dreiphasen-Route abwärts-aufwärts-abwärts. Erneut gibt es hier acht alternative kürzeste Pfade über Switches der Ebene 1 s(1; 00x) und Switches der Ebene 4 s(4; y11), wobei hier die Route über s(1; 001) und s(4; 011) ausgewählt wird. Diese Route weist ebenfalls eine Abwärts/Aufwärts-Umkehrung auf und wird VC0 bis zu dem Umkehrungs-Switch s(1; 001) und ab diesem Switch VC1 zugewiesen.
  • Es ist ersichtlich, dass die vorstehend beschriebene Ausführungsform ein einfaches und höchst effizientes Routing-Verfahren für ein vollständig verbundenes Fat-Tree-Netzwerk 10 bereitstellt. Durch Auswählen einer Route, die die geeignete Kombination aus drei oder weniger Routing-Phasen wie beschrieben aufweist, werden alle Pakete über den kürzesten Netzwerkpfad zwischen Source- und Destination-Switches gesendet. Die Pfaddiversität kann durch jeden gewünschten Pfadauswahlmechanismus voll ausgenutzt werden, während der Ansatz zur Zuweisung virtueller Kanäle einen blockierungsfreien Betrieb mit lediglich einem oder zwei virtuellen Kanälen garantiert.
  • Die Erfindung ausführende Verfahren können im Allgemeinen auf jeden beliebigen Typ von Fat-Tree-Netzwerk angewendet werden. So kann beispielsweise die vorstehende Ausführungsform allgemein auf k-äre n-Bäume angewendet werden. Solche k-ären n-Bäume sind auf ähnliche Weise wie das Netzwerk 10 konstruiert, wobei n.kn-1 Switches in n Stufen angeordnet sind, (n – 1).kn Verbindungen zwischen Switches angeordnet sind, und kn Endknoten an Leaf-Switches anliegen. Die vorstehende Ausführungsform kann auch in einer geradlinigen Weise auf erweiterte Fat-Trees(XGFTs) erweitert werden, wie den Fachleuten ohne Weiteres ersichtlich ist. XGFTs sind durch die Anzahl von Ebenen n und zwei Parametervektoren mi, wi charakterisiert, wobei mi die Anzahl von Children (Nachfolgern) pro Ebene i(1 ≤ i ≤ n, mi ≥ 1), und wi die Anzahl von Parents (Vorgängern) pro Ebene (1 ≤ i ≤ n, wi ≥ 1) ist.
  • Das „Switch-to-Switch“-Routingverfahren für Fat-Tree-Netzwerke ermöglicht darüber hinaus eine Erweiterung der herkömmlichen Verwendung von Fat-Tree-Topologien. So können insbesondere direkte Fat-Tree-Netzwerke implementiert werden, in denen Switches auf einer Vielzahl von Ebenen der Fat-Tree-Topologie und vorzugsweise jeder Switch in dem Netzwerk jeweils mit wenigstens einem Endknoten verbunden werden kann. In solch einem Netzwerk können Switches, falls gewünscht, mit den jeweiligen Endknoten integriert oder separat zur Verbindung mit einer Vielzahl von Endknoten bereitgestellt werden. Ein direkter k-ärer n-Baum kann beispielsweise durch drei Parameter (n, k, b) charakterisiert werden, wobei n und k wie vorstehend beschrieben sind und b der Bristling-Faktor, d.h. die Anzahl von Endknoten, die an jedem Switch hängen, ist. Solch ein Netzwerk hat n.kn-1 Switches und b.n.kn-1 Endknoten. Switches auf der unteren und auf der oberen Ebene haben die Radix k + b. Alle anderen Switches haben die Radix 2.k + b. 11 veranschaulicht ein Beispiel eines solchen Netzwerkes, in diesem Fall eines binären 2-Wege 4-Baumes mit b = 2. Solch ein Netzwerk besitzt: (n – 1).kn Verbindungen zwischen Switches für n ≥ 2; Diameter (Anzahl an durchquerten Switches) = 2n – 1; (k/2).kn-1 = kn/2 Bisektionsverbindungen; Bisektionsbandbreite (in einer Richtung) = R.kn/2, wobei R = Verbindungsrate; Bisektionsbandbreite pro Knoten (in einer Richtung) = (R.kn/2)/(b.n.kn-1/2) = (R.k)/(b.n); relative Bisektionsbandbreite pro Knoten = k /(b.n). Die Anforderung für die volle Bisektionsbandbreite ist dann k ≥ b.n.
  • Direkte Fat-Tree-Netzwerke können auch auf XGFTs basieren. Solche Netzwerke sind durch die Anzahl an Ebenen n und drei Parametervektoren mi, wi, bi charakterisiert, wobei mi die Anzahl an Children (Nachfolgern) pro Ebene i ist (hier für 2 ≤ i ≤ n, mi ≥ 1); wi ist die Anzahl von Parents (Vorgängern) pro Ebene (hier für 2 ≤ i ≤ n, wi ≥ 1); und bi ist der Bristling-Faktor (für 1 ≤ bi ≤ n, bi ≥ 1). Verglichen mit dem ursprünglichen XGFT-Ansatz: wird m1 als die Anzahl von Children der ersten Ebene weggelassen, d.h. die Anzahl von Endknoten pro Switch der ersten Ebene wird durch bi angegeben, und w1 wird ebenfalls weggelassen, da mehrere Parents pro Endknoten nicht zulässig sind.
  • Direkte Fat-Tree-Netzwerke bieten verschiedene Vorteile, einschließlich einer kürzeren durchschnittlichen Pfadlänge und einem besseren Preis-/Leistungsverhältnis als bei herkömmlichen Fat Trees. Switches mit hoher Radix können an direkte Topologien angepasst werden, und es besteht eine topologische Flexibilität in Bezug auf das Preis/Leistungsverhältnis bei Switches mit einer festen Radix k. Die Kosten können durch Erhöhen des Bristling-Faktors b reduziert werden, wobei gleichzeitig die Leistung durch Reduzieren von b verbessert werden kann. Eine inkrementelle Skalierbarkeit wird von den direkten Topologien ohne Forklift-Upgrade wie in typischen Fat-Tree-Netzwerken übernommen. Darüber hinaus ist eine bessere Ausnutzung der Lokalität für eine jeweilige Radix k entsprechend der Anzahl von Ebenen n und dem gewählten Bristling-Wert b möglich.
  • Direkte die Erfindung ausführende k-äre n-Baum-Netzwerke können Bristling-Faktoren pro Ebene bereitstellen, wenn ein Netzwerk vorhanden ist, das von zwei Parametern (k, n) und einem Parametervektor bi charakterisiert wird, wobei 1 ≤ bi ≤ n, bi ≥ 0. Dies kann zum Egalisieren von Switch-Radizes auf allen Ebenen verwendet werden, z. B. für Radix 2k + b: b1 = bn = b + k, b2≤i<n = b, oder für Radix 2k: b1 = bn = k, b2≤i<n = 0. Letztere stellt auf effektive Weise ein hybrides direktes/indirektes Fat-Tree-Netzwerk bereit. Tatsächlich bieten sich direkte Fat-Tree-Netzwerke sehr gut für den Einsatz in hybriden direkten/indirekten Netzwerkformen an. In Datenzentrumanwendungen können Endknoten beispielsweise mit jedem Switch auf Board-, Gehäuse und Gestellebene verbunden werden. Diese Ebenen können fest integrierte Switches (auf demselben Chip oder Paket wie Endknoten-CPUs verwenden. Um jedoch mehrere Gestelle zu skalieren, kann ein Verbindungsnetzwerk mit einer oder mehreren herkömmlichen indirekten Ebenen hinzugefügt werden. Diese Ebenen können herkömmliche eigenständige Switches verwenden.
  • Eine bestimmte Ausführungsform eines hybriden Netzwerkes ist in 12 veranschaulicht. Dieses basiert auf dem direkten Netzwerk von 11 mit Wrap-Around-Links, die von der obersten bis zur untersten Ebene hinzugefügt wurden. Dadurch wird die mittlere Pfadlänge reduziert und die Switch-Radix auf allen Ebenen vereinheitlicht. Den Fachleuten sind viele andere hybride Netzwerkformen ersichtlich.
  • Es ist ersichtlich, dass viele Änderungen und Modifizierungen an den vorstehend beschriebenen beispielhaften Ausführungsformen vorgenommen werden können. So können beispielsweise die den Routen zugewiesenen virtuelle Kanäle an dem Umkehrungs-Switch von Routen geändert werden, die eine Aufwärts/Abwärts-Umkehrung aufweisen, im Gegensatz zu Routen, die eine Abwärts-/Aufwärts-Umkehrung aufweisen. Welche Umkehrung auch immer die Änderung der Zuweisung virtueller Kanäle auslöst, können Routen, die eine solche Umkehrung nicht aufweisen, im Allgemeinen auf dem einen oder dem anderen der zwei Kanäle geroutet werden.
  • Obgleich die Routenberechnung und die Kanalzuweisungen dynamisch Sprung für Sprung (hop-by-hop) wie vorstehend beschrieben ermittelt werden, können auch verschiedene Alternativen umgesetzt werden. Routen können dynamisch für eine Source-Routing-Implementierung berechnet werden, wodurch der Source-Knoten die gesamte Route berechnet, die anschließend in dem Paket irgendwie spezifiziert wird. Die Berechnung könnte auch Kanalzuweisungen ermitteln und spezifizieren, oder dies könnte dynamisch von Switches in der Route ermittelt werden. In anderen Ausführungsformen kann die Routenberechnung (und falls gewünscht auch Kanalzuweisungen) Offline vor dem Netzwerkbetrieb beispielsweise durch einen Netzwerkverwaltungsrechner durchgeführt werden. In diesem Fall können die vorab berechneten Ergebnisse für Paare von Switches in dem Netzwerk von einer oder mehreren Datenstrukturen definiert werden, z.B. Routing-Tabellen, die Switches zur Verwendung bei der Auswahl von Routen für bestimmte Pakete während des Netzwerkbetriebes bereitgestellt werden.
  • An den vorstehend beschriebenen Ausführungsformen können viele weitere Änderungen und Modifizierungen vorgenommen werden, ohne vom Schutzumfang der Erfindung abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • “sFtree: A fully connected and deadlock-free switch-to-switch routing algorithm for fat-trees”, Bogdanski et al., ACM Trans. Architecture and Code Optimization, Bd. 8, Nr. 4, Jan. 2012 [0005]
    • „Deadlock-free Oblivious Routing for Arbitrary Topologies”, Domke et al., in den Konferenzunterlagen des 25th IEEE International Parallel & Distributed Processing Symposium (IPDPS), Anchorage, USA, S. 613–624, Mai 2011 [0006]
    • „Effective Methodology for Deadlock-Free Minimal Routing in InfiniBand Networks”, Sancho et al., in Unterlagen der IEEE International Conference on Parallel Processing (ICPP), Vancouver, Kanada, S. 409–418, Aug. 2002 [0006]

Claims (21)

  1. Verfahren zum Routing von Datenpaketen zwischen Source- und Destination-Switches in einem Fat-Tree-Netzwerk, wobei das Verfahren aufweist: Auswählen einer Route für jedes Paket, das drei oder weniger Routingphasen aufweist, so dass die Route dem kürzesten Pfad über das Netzwerk zwischen den Source- und Destination-Switches folgt; Senden des Datenpaketes von dem Source-Switch an den Destination-Switch über die Route auf einem eines ersten oder zweiten virtuellen Kanals, bis die Route eine vorgegebene einer Abwärts-Aufwärts-Umkehrung oder einer Aufwärts-Abwärts-Umkehrung aufweist; und falls die Route die vorgegebene einer Abwärts-Aufwärts-Umkehrung oder einer Aufwärts-Abwärts-Umkehrung aufweist, Senden des Datenpaketes über die Route auf dem ersten virtuellen Kanal bis zu dem Switch, an dem die Umkehrung auftritt, und auf dem zweiten virtuellen Kanal ab diesem Switch.
  2. Verfahren nach Anspruch 1, wobei es sich bei der vorgegebenen einer Abwärts-Aufwärts-Umkehrung oder einer Aufwärts-Abwärts-Umkehrung um eine Abwärts-Aufwärts-Umkehrung handelt.
  3. Verfahren nach Anspruch 1 oder 2, aufweisend, falls die Route nicht die vorgegebene einer Abwärts-Aufwärts-Umkehrung oder einer Aufwärts-Abwärts-Umkehrung aufweist, Senden des Datenpaketes auf dem ersten virtuellen Kanal.
  4. Verfahren nach einem beliebigen der vorgehenden Ansprüche, aufweisend Berechnen der Routen für Datenpakete.
  5. Verfahren nach Anspruch 4, aufweisend Berechnen der Route für ein Datenpaket, indem für jeden Switch auf der Route die Richtung der Routing-Phase für den nächsten Sprung (hop) und der nächste Switch auf der Route in dieser Richtung bestimmt wird.
  6. Verfahren nach Anspruch 5, aufweisend Bestimmen für jeden Switch auf der Route, den virtuellen Kanal für den nächsten Sprung (hop) in Abhängigkeit von der Richtung.
  7. Verfahren nach einem beliebigen der vorgehenden Ansprüche, aufweisend Auswählen der Route für ein Datenpaket unter Verwendung vorgegebener Routing-Daten, die vorab berechnete Routen zwischen Paaren von Switches in dem Netzwerk anzeigen.
  8. Verfahren nach einem beliebigen der Ansprüche 4 bis 6, aufweisend Berechnen der Route für jedes Datenpaket dynamisch während des Betriebes des Netzwerkes.
  9. Verfahren nach Anspruch 8, aufweisend Berechnen der Route für jedes Datenpaket Sprung für Sprung (hop-by-hop) an aufeinanderfolgenden Switches in dem Pfad.
  10. Verfahren zum Routen von Datenpaketen zwischen Source- und Destination-Switches in einem Fat-Tree-Netzwerk, wobei das Verfahren im Wesentlichen so beschaffen ist, wie es hierin in Bezug auf die begleitenden Zeichnungen beschrieben wird.
  11. Computerprogramm, aufweisend ein Programmcodemittel zum Veranlassen eines Prozessors eines Switch in einem Fat-Tree-Netzwerk aus gleichen Switches, zusammen mit den anderen Switches ein Verfahren nach einem beliebigen der vorgehenden Ansprüche durchzuführen.
  12. Computerimplementiertes Verfahren zum Festlegen des Routing von Datenpaketen zwischen Switches in einem Fat-Tree-Netzwerk, wobei das Verfahren aufweist: zum Routen zwischen Paaren aus Source- und Destination-Switch, Auswählen jeweiliger Routen mit drei oder weniger Routing-Phasen derart, dass jede Route einem kürzesten Pfad über das Netzwerk zwischen dem Source- und dem Destination-Switch folgt; Zuweisen jeder Route einem ersten oder zweiten virtuellen Kanal von dem Source-Switch zu dem Destination-Switch, bis diese Route eine vorgegebene einer Abwärts-Aufwärts-Umkehrung oder einer Aufwärts-Abwärts-Umkehrung aufweist; und wenn eine Route eine vorgegebene einer Abwärts-Aufwärts-Umkehrung oder einer Aufwärts-Abwärts-Umkehrung aufweist, Zuweisen der Route dem ersten virtuellen Kanal bis zu dem Switch, an dem die Umkehrung auftritt, und dem zweiten virtuellen Kanal ab diesem Switch.
  13. Verfahren nach Anspruch 12, aufweisend Bereitstellen von Routing-Daten, die jede Route und deren Zuweisung eines virtuellen Kanals anzeigen, zur Verwendung durch Switches in dem Netzwerk.
  14. Computerprogramm, aufweisend Programmcodemittel zum Veranlassen eines Computers, ein Verfahren nach Anspruch 12 oder Anspruch 13 durchzuführen.
  15. Fat-Tree-Netzwerk, aufweisend eine Vielzahl von Switches, die in einer Fat-Tree-Topologie verbunden sind, wobei die Switches so eingerichtet sind, dass sie ein Routing-Verfahren nach einem beliebigen der Ansprüche 1 bis 10 implementieren.
  16. Indirektes Fat-Tree-Netzwerk nach Anspruch 15, wobei jeder Switch in einer untersten Ebene der Fat-Tree-Topologie mit wenigstens einem Endknoten verbunden ist.
  17. Direktes Fat-Tree-Netzwerk nach Anspruch 15, wobei Switches auf einer Vielzahl von Ebenen der Fat-Tree-Topologie jeweils mit wenigstens einem Endknoten verbunden sind.
  18. Direktes Fat-Tree-Netzwerk nach Anspruch 17, wobei jeder Switch in dem Netzwerk mit wenigstens einem Endknoten verbunden ist.
  19. Netzwerk, aufweisend wenigstens ein direktes Fat-Tree-Netzwerk nach Anspruch 17 oder Anspruch 18 und wenigstens ein Verbindungsnetzwerk.
  20. Fat-Tree-Netzwerk wie im Wesentlichen vorstehend in Bezug auf die begleitenden Zeichnungen beschrieben.
  21. Switch in einem Fat-Tree-Netzwerk nach Anspruch 15 oder Anspruch 20.
DE102013111341.9A 2012-12-14 2013-10-15 Blockierungsfreies routing in fat-tree-netzwerken Ceased DE102013111341A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1222580.1 2012-12-14
GB1222580.1A GB2508891A (en) 2012-12-14 2012-12-14 Deadlock-free routing of data packets in fat tree networks

Publications (1)

Publication Number Publication Date
DE102013111341A1 true DE102013111341A1 (de) 2014-06-18

Family

ID=47630743

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013111341.9A Ceased DE102013111341A1 (de) 2012-12-14 2013-10-15 Blockierungsfreies routing in fat-tree-netzwerken

Country Status (3)

Country Link
CN (1) CN103873367B (de)
DE (1) DE102013111341A1 (de)
GB (1) GB2508891A (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9391845B2 (en) * 2014-09-24 2016-07-12 Intel Corporation System, method and apparatus for improving the performance of collective operations in high performance computing
US10715446B2 (en) * 2016-09-12 2020-07-14 Huawei Technologies Co., Ltd. Methods and systems for data center load balancing
US10404574B2 (en) * 2016-11-24 2019-09-03 Mellanox Technologies Tlv Ltd. Deadlock-free routing in lossless multidimensional cartesian topologies with minimal number of virtual buffers
US11108679B2 (en) 2019-08-08 2021-08-31 Mellanox Technologies Tlv Ltd. Producing deadlock-free routes in lossless cartesian topologies with minimal number of virtual lanes
US11425027B2 (en) 2020-11-01 2022-08-23 Mellanox Technologies, Ltd. Turn-based deadlock-free routing in a Cartesian topology

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200117B2 (en) * 2002-01-31 2007-04-03 Sun Microsystems, Inc. Method of optimizing network capacity and fault tolerance in deadlock-free routing
CN100474822C (zh) * 2002-12-31 2009-04-01 浪潮电子信息产业股份有限公司 一种多分支胖树网络系统
US9166817B2 (en) * 2009-01-19 2015-10-20 Hewlett-Packard Development Company, L.P. Load balancing
ES2361545B1 (es) * 2009-02-24 2012-05-08 Universidad De Alcala De Henares Procedimiento de encaminamiento de tramas de datos y puente de red.
US8139490B2 (en) * 2009-12-21 2012-03-20 Google Inc. Deadlock prevention in direct networks of arbitrary topology

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Deadlock-free Oblivious Routing for Arbitrary Topologies", Domke et al., in den Konferenzunterlagen des 25th IEEE International Parallel & Distributed Processing Symposium (IPDPS), Anchorage, USA, S. 613-624, Mai 2011
"Effective Methodology for Deadlock-Free Minimal Routing in InfiniBand Networks", Sancho et al., in Unterlagen der IEEE International Conference on Parallel Processing (ICPP), Vancouver, Kanada, S. 409-418, Aug. 2002
"sFtree: A fully connected and deadlock-free switch-to-switch routing algorithm for fat-trees", Bogdanski et al., ACM Trans. Architecture and Code Optimization, Bd. 8, Nr. 4, Jan. 2012

Also Published As

Publication number Publication date
GB2508891A (en) 2014-06-18
CN103873367B (zh) 2017-05-03
GB201222580D0 (en) 2013-01-30
CN103873367A (zh) 2014-06-18

Similar Documents

Publication Publication Date Title
DE112009000834B4 (de) Expressvirtuelle Kanäle in einem Paketvermittelten Auf-Chip Verbindungsnetzwerk
DE60214667T2 (de) Wegbestimmung in einem datennetzwerk
DE112011100339B4 (de) System zum Gegensteuern bei Netzwerk-Datenüberlastungen
DE602005004529T2 (de) Verfahren zum Verwalten einer Vielzahl von virtuellen Verbindungen zur gemeinsamen Nutzung auf einer Verbindungsleitung und Netzwerk zur Implementierung dieses Verfahrens
DE112013000398B4 (de) Multisprung-Fehlerbehebung
EP0872090B1 (de) Verfahren zum bilden von leitweginformation
DE602004002522T2 (de) Dienstgüte-Verfahren basierend auf einer Durchflussregelung in einem verteilten Switch Fabric-Netzwerk
DE69534729T2 (de) Verfahren zur Anfragelenkung für eine virtuelle Verbindung in Abhängigkeit vor Informationen über gleichzeitige Anfragen
DE102013111341A1 (de) Blockierungsfreies routing in fat-tree-netzwerken
DE19849776A1 (de) Skalierbare mehrstufige Verbindungsnetzarchitektur und Verfahren zum Durchführen einer Erweiterung dieser Architektur während des Betriebes
DE112013000401T5 (de) Netzwerküberlastungsverwaltung durch Paketzirkulation
DE112011100198T5 (de) Prüfsystem für eine Netzwerkdatenüberlastung-Gegensteuerung
DE112011105843T5 (de) Pfaddiversität in einem verbindungsorientierten Netzwerk
Lotfi-Kamran et al. BARP-a dynamic routing protocol for balanced distribution of traffic in NoCs
DE69731954T2 (de) Verfahren zur optimierung eines überwiegend optischen netzes
DE60217685T2 (de) System und verfahren zum vermitteln von daten unter verwendung eines gemeinsamen koppelfeldes
WO2012101054A1 (de) Verfahren zum erhöhen der qualität der datenübertragung in einem paketbasierten kommunikationsnetz
DE102015101583B4 (de) Reduzierung der Grösse von IPV6-Routertabellen unter Verwendung eines Bypasstunnels
EP0351014B1 (de) Koppelfeld für ein Vermittlungssystem
DE602005002325T2 (de) Verfahren zur Verkehrsweiterlenkung, die Verkehrsgewichtungsfaktoren verwendet
DE102004003548B3 (de) Optimierung der Verkehrsverteilung bei Mehrwegerouting
DE69534171T2 (de) Verfahren und Vorrichtung für verbesserten Durchfluss in einem Vielfachknoten-Kommunikationssystem mit einem gemeinsamen Betriebsmittel
CN108337179A (zh) 链路流量控制方法及装置
EP1911216B1 (de) Verfahren zum phasenbezogenen scheduling des datenflusses in geschalteten netzwerken
EP0310759A2 (de) Sortiereinheit für einen Vermittlungsknoten mit einer Vielzahl von digitalen Koppelfeldern für schnelle, asynchrone Datenpaketvermittlungsnetze

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final