Verbindungsnetzwerke, Einbettungen, Routing- und Switchingstrategien Seminar „Parallele Programmierung“ Gunnar Thies Gliederung 1. 2. 3. 4. 5. Einleitung Grundbegriffe Arten von Verbindungsnetzwerken Routingtechnik Fazit 2 1. Einleitung 1. Einleitung Verwendung paralleler Rechnersysteme beispielsweise bei komplexen Rechenaufgaben wie: • • • Wettervorhersagen Windkanalsimulationen für Fahrzeuge Filmindustrie 3 1. Einleitung Vorteil von Einsatz paralleler Rechnersysteme gegenüber Einzelrechnern: • Aufteilung der Rechenlast auf mehrere Verarbeitungseinheiten (Prozessoren) • Steigerung der Rechen(Speicher-)Kapazität • Ausfallsicherheit wird gesteigert • Steigerung der Simulationsgenauigkeit Nachteile von parallelen Rechnersystemen: • Deadlockgefahr • Wartungsaufwand höher (im Vergleich zu Einzelrechnern) 4 2. Grundbegriffe 2.1 Verbindungsnetzwerk 2.2 Einbettung 2.3 Routingtechnik 5 2. Grundbegriffe - Verbindungsnetzwerk 2.1 Verbindungsnetzwerk • Verbindet einzelne Verarbeitungseinheiten (Knoten) des Netzwerks miteinander • Dient der Koordination von Rechenaufgaben • Haupt-Aufgabe: Übertragung von Nachrichten zwischen einzelnen Verarbeitungseinheiten Wichtigster Aspekt: Fehlerfreie und möglichst schnelle Übertragung der Nachrichten / Daten durch das Verbindungsnetzwerk 6 2. Grundbegriffe - Verbindungsnetzwerk Grundaspekte zur Einordnung von Verbindungsnetzwerken: • Topologie : Form der Verschachtelung / Verbindung der Verarbeitungseinheiten (Knoten) im Netzwerk • Routingtechnik: Berechnung von Pfaden durchs Netzwerk und Realisierung der Nachrichtenübertragung vom Quell- zum Zielknoten 7 2. Grundbegriffe - Einbettung 2.2 Einbettung • Die Einbettung ist ein Maß für die Flexibilität des Verbindungsnetzwerks Vorgehen: • Überprüfen der Möglichkeit ein Netzwerk N‘ auf ein gegebenes Netzwerk N so abzubilden, dass jeder Knoten des Netzwerks N‘ auf unterschiedlichen Knoten des Netzwerks N zu liegen kommt. 8 2. Grundbegriffe - Einbettung Beispiel: Einbettung eines Ring-Netzwerks mit 8 Knoten in ein Gitter-Netzwerk mit 12 Knoten: N‘ 1 8 3 4 8 2 7 6 3 4 5 N 7 6 2 1 5 • Dadurch lassen sich (Routing-) Algorithmen des Netzwerks N‘ auch im Netzwerk N verwenden – N ist mindestens so flexibel wie N‘. 9 2. Grundbegriffe - Einbettung Ein Merkmal der Einbettung ist der Streckungsgrad: • bezeichnet die maximale Erhöhung der Distanz zweier Knoten des Netzwerks N‘ durch die Einbettung in Netzwerk N • Grad von 1 bedeutet, dass die Distanz der Knoten in N dieselbe ist wie in N‘ • Höherer Grad bedeutet Erhöhung der Distanz durch die Einbettung und dadurch erhöhte Kommunikationslast und -dauer. Anm.: Hier werden nur Einbettungen vom Grad 1 betrachtet. 10 2. Grundbegriffe - Einbettung Einbettung eines Netzwerks N‘ in N mit Streckungsgrad 1: 8 1 N‘ 2 3 1 8 6 2 7 6 5 3 4 5 7 4 N Einbettung eines Netzwerks N‘ in N mit Streckungsgrad 3: 1 1 4 2 N‘ 4 2 3 5 11 5 N 3 2. Grundbegriffe - Routingtechnik 2.3 Routingtechnik • Beschreibt wie und entlang welchen Pfades eine Nachricht im Netzwerk verschickt wird • Setzt sich aus zwei Teilen zusammen: - Routingalgorithmen: bestimmen den Pfad einer Nachricht durch das Netzwerk - Switching-Strategien: legen fest, ob und wie eine Nachricht in Teile zerlegt wird und regeln die Allokation von Verbindungen Die Kombination aus Routingalgorithmen, SwitchingStrategien und der Topologie des Netzwerks beeinflussen im wesentlichen dessen Geschwindigkeit. 12 3. Arten von Verbindungsnetzwerken 3.1 Statische Verbindungsnetzwerke 3.2 Einbettung statischer Verbindungsnetzwerke 3.3 Dynamische Verbindungsnetzwerke 13 3. Arten von Verbindungsnetzwerken – Statische Verbindungsnetzwerke 3.1 Statische Verbindungsnetzwerke 3.1.1 Einordnung statischer Verbindungsnetzwerke 3.1.2 Anforderungen an ein Verbindungsnetzwerk 3.1.3 Topologien statischer Verbindungsnetzwerke 14 3. Arten von Verbindungsnetzwerken–Einordnung statischer V.-Netzwerke 3.1.1 Einordnung statischer Verbindungsnetzwerke • Netzwerke mit fest verdrahteten Knoten (Speichereinheiten, Prozessoren) werden als statische oder direkte Verbindungsnetzwerke bezeichnet • Anordnung der Komponenten im ungerichteten Kommunikationsgraphen G = (V,E) (mit V = Menge der Knoten und E = Menge der Kanten) • 4 Bewertungskriterien für die Topologie eines Verbindungsnetzwerkes: Durchmesser, Grad, Bisektionsbandbreite, Knotenkonnektivität 15 3. Arten von Verbindungsnetzwerken–Einordnung statischer V.-Netzwerke Durchmesser • Beschreibt die maximale Distanz zwischen zwei beliebigen Knoten des Netzwerks • Maß der maximalen Dauer für den Transport einer Nachricht vom Startknoten u zum Zielknoten v • Formel: (G ) max u ,vV {min{ k | k ist Länge des Pfades von u nach v}} 16 3. Arten von Verbindungsnetzwerken–Einordnung statischer V.-Netzwerke Beispiel für den Durchmesser eines Netzwerks: 1 2 3 4 5 6 7 48 9 Hier ist die Distanz von Knoten Nr.1 zu Knoten Nr. 9 maximal 4. Durchmesser = 4 17 3. Arten von Verbindungsnetzwerken–Einordnung statischer V.-Netzwerke Grad (eines Netzwerks) • entspricht dem größten Grad eines Knotens des Netzwerks • Grad eines Knotens ist zu bestimmen aus den adjazenten (ein-/ausgehenden) Kanten des Knotens • Je höher der Grad eines Netzwerks ist, desto komplexer werden die Berechnungen für die Versendung einer Nachricht über das Netzwerk. • Formel: g (G ) max{ g (v) | g (v) Grad von v V } 18 3. Arten von Verbindungsnetzwerken–Einordnung statischer V.-Netzwerke Beispiel für den Grad eines Netzwerks: 1 2 3 4 5 6 7 48 9 Knoten Nr. 5 hat mit vier Verbindungen den größten Grad dieses Netzwerks. Grad des Netzwerks = 4 19 3. Arten von Verbindungsnetzwerken–Einordnung statischer V.-Netzwerke Bisektionsbandbreite (oder Bisektionsbreite) • Nennt die minimale Anzahl an Kanten, die entfernt werden müssen, um das Netzwerk in zwei gleichgroße Teilnetzwerke zu zerteilen.* • Drückt das Maß an Belastbarkeit des Netzwerks bei gleichzeitiger Übertragung von Nachrichten aus • Formel: B(G) min U 1 U 2 1 {( u, v) E | u U 1 , v U 2 } mit U1 ,U 2 Partition von V * Diese müssen die bis auf 1 identische Anzahl an Knoten aufweisen ! 20 3. Arten von Verbindungsnetzwerken–Einordnung statischer V.-Netzwerke Beispiel für die Bisektionsbandbreite eines Netzwerks: 1 2 3 1 4 5 6 4 5 6 7 48 9 7 48 9 3 2 Durch entfernen von 4 Kanten kann hier das Netzwerk in zwei Netzwerke geteilt werden. Bisektionsbandbreite = 4 21 3. Arten von Verbindungsnetzwerken–Einordnung statischer V.-Netzwerke Knotenkonnektivität • Beschreibt die Anzahl der Knoten, die entfernt werden müssen, um das Netzwerk in zwei Teile zu teilen (nicht zwei gleiche Teile – nur Verbindung unterbrechen!) • Maß für den Zusammenhang im Netzwerk • Je höher die Knotenkonnektivität desto höher die Ausfallsicherheit des Netzwerks • Formel: nc(G) min { M | es existieren u, vV \ M , so dass es in GV \ M keinen Pfad von u nach v gibt} M V GV \ M bezeichnet den Restgraphen, der nach Löschen der Knoten von M V und den dazugehörigen Kanten entsteht . 22 3. Arten von Verbindungsnetzwerken–Einordnung statischer V.-Netzwerke Beispiel für Knotenkonnektivität: Entfernen von 2 Knoten... 1 2 3 4 5 6 7 48 9 3 1 7 5 6 48 9 Die Knotenkonnektivität beträgt hier 2, da 2 Knoten aus dem Netzwerk entfernt werden müssen, um die Verbindungen vollständig zu trennen. (Hier ist z.B. keine Verbindung zwischen 1 und dem Rest des Netzwerks mehr möglich.) 23 3. Arten von Verbindungsnetzwerken – Anforderungen an ein V.-Netzwerk 3.1.2 Anforderungen an ein Verbindungsnetzwerk Ein optimales Verbindungsnetzwerk sollte folgende Anforderungen erfüllen: • • • • geringer Durchmesser geringe Distanzen für Nachrichtenversand kleiner Grad der Knoten weniger Rechenaufwand hohe Bisektionsbandbreite + hohe Konnektivität großer Datendurchsatz bei hoher Zuverlässigkeit Skalierbarkeit leichte Erweiterung um weitere Knoten 24 3. Arten von Verbindungsnetzwerken–Topologien statischer V.-Netzwerke 3.1.3 Topologien statischer Verbindungsnetzwerke Folgende statische Verbindungsnetzwerke werden vorgestellt: • • • • • vollständiger Graph Ring d-dimensionales Gitter k-dimensionaler Würfel vollständiger binärer Baum 25 3. Arten von Verbindungsnetzwerken–Topologien statischer V.-Netzwerke Vollständiger Graph • Alle Knoten sind direkt miteinander verbunden • Jedes Netzwerk lässt sich hierin einbetten • Durch hohen Knoten und Kantengrad nur für wenige Prozessoren zu realisieren 26 3. Arten von Verbindungsnetzwerken–Topologien statischer V.-Netzwerke Durchmesser: (G ) 1 Grad: g (G ) n 1 Konnektivität: nc (G ) n 21 n Bisektionsbreite: B(G ) (für gerade n) 4 27 3. Arten von Verbindungsnetzwerken–Topologien statischer V.-Netzwerke Ring • Sequentielle Anordnung der Knoten mit je genau einem Nachfolger und einem Vorgänger • der letzte Knoten ist mit dem ersten Knoten verbunden, somit ist der Ring geschlossen • bei kleiner Prozessorzahl auch heute noch in Verwendung 28 3. Arten von Verbindungsnetzwerken–Topologien statischer V.-Netzwerke n Durchmesser: (G ) 2 Grad: g (G ) 2 Konnektivität: nc(G ) 2 Bisektionsbreite: B (G ) 2 29 3. Arten von Verbindungsnetzwerken–Topologien statischer V.-Netzwerke d-dimensionales Gitter / Feld • Besteht aus n n1 n2 ... nd Knoten, die ein ddimensionales Feld aufspannen • n d bezeichnet die Ausdehnung des Feldes in der Dimension d 30 3. Arten von Verbindungsnetzwerken–Topologien statischer V.-Netzwerke Durchmesser: (G ) d ( d n 1) Grad: g (G ) 2d Konnektivität: nc(G ) d Abbildung: 2-dimensionales Gitter 31 3. Arten von Verbindungsnetzwerken–Topologien statischer V.-Netzwerke k-dimensionaler Hyperwürfel • besteht aus n 2 Knoten • rekursiver Aufbau aus Würfeln tieferer Dimensionen • jedem Knoten wird ein Bitwort der Länge k zugeordnet, um Distanzen zwischen Knoten einfach zu bestimmen • die Benennung der Knoten folgt dabei dem gespiegelten Gray-Code-Verfahren k 32 3. Arten von Verbindungsnetzwerken–Topologien statischer V.-Netzwerke Gespiegeltes Gray Code Verfahren: • Bei einem Dimensionssprung im Würfel verdoppeln sich die Knoten im Netzwerk • Bit-Wörter von vorhandenen Knoten bekommen eine ‚0‘ vorangestellt • Die neu hinzugekommenen Knoten erhalten die Bitwörter der schon vorhandenen Knoten, aber mit einer zusätzlichen ‚1‘ vorangestellt • Direkt miteinander verbundene Knoten unterscheiden sich nur in einem Bit ihres Namens • Einfache Berechnung der Distanzen zwischen Knoten (Unterschiede in Bitstellen zweier gleichlanger Bitworte = „Hamming-Distanz“) 33 3. Arten von Verbindungsnetzwerken–Topologien statischer V.-Netzwerke Beispiel für gespiegeltes Gray-Code-Verfahren bei der Benennung der Knoten eines Hyperwürfels: 3-dimensionaler Hyperwürfel 1-dimensionaler Hyperwürfel 2-dimensionaler Hyperwürfel 110 10 11 010 0 111 1 011 100 00 101 01 000 Durch Dimensionssprung hinzugekommene Knoten: Durch Dimensionssprung vorangestelltes Bit: 0 oder 1 34 001 3. Arten von Verbindungsnetzwerken–Topologien statischer V.-Netzwerke Durchmesser: (G ) k Grad: g (G ) k Konnektivität: nc(G ) k 110 111 010 011 100 101 001 000 35 3. Arten von Verbindungsnetzwerken–Topologien statischer V.-Netzwerke vollständiger binärer Baum k • Besteht aus n 2 1 Knoten • Darstellung einer kompletten binären Baumstruktur • Jeder Knoten (bis auf die Endknoten auf unterster Stufe) ist mit zwei Kindknoten verbunden 36 3. Arten von Verbindungsnetzwerken–Topologien statischer V.-Netzwerke Durchmesser: (G ) 2 log Grad: g (G ) 3 Konnektivität: nc(G ) 1 n 1 2 37 3. Arten von Verbindungsnetzwerken - Einbettung statischer V.-Netzwerke 3.2 Einbettung statischer Verbindungsnetzwerke • Eingebettet werden meist Ring- und Gitternetzwerk in 2dimensionale Gitter oder k-dimensionale Hyperwürfel • Eine höhere Belastung des Zielnetzwerkes wird durch den Streckungsgrad von 1 vermieden • Da Einbettung eines Rings oder Gitters in ein gleichdimensionales Netzwerk einfach ist (Beispiel), wird hier die Einbettung in einen Hyperwürfel vorgestellt 38 3. Arten von Verbindungsnetzwerken - Einbettung statischer V.-Netzwerke Einbettung eines Rings in einen k-dimensionalen Würfel k • Um einen Ring mit n 2 Knoten in einen kdimensionalen Hyperwürfel einzubetten, müssen alle Knoten des Rings V ' {1,..., n} auf die Knotenmenge V {0,1}k abgebildet werden • Die Kanten (i, j ) E ' des Rings sollen dabei auf den Kanten E des Würfels liegen • Die Benennung der Knoten im Hyperwürfel folgt dem Gray-Code-Verfahren, im Ring einer Zahlenfolge von 1 bis n, daher kann die Einbettung durch folgende Abbildung ausgedrückt werden: : {1,..., n} {0,1}k mit (i ) : RGC k (i ) ( RGC k (i) meint das i-te Element der Gray-Code-Folge RGC k (i) ). 39 3. Arten von Verbindungsnetzwerken - Einbettung statischer V.-Netzwerke Beispiel: Einbettung eines Rings in einen k-dimensionalen Würfel 110 100 101 111 010 110 000 001 011 111 011 100 000 010 101 001 3-d. Hyperwürfel Ring mit 8 Knoten 40 3. Arten von Verbindungsnetzwerken - Einbettung statischer V.-Netzwerke Einbettung eines 2-dimensionalen Gitters in einen kdimensionalen Würfel • Um ein Gitter mit n n1 n2 Knoten in einen kk dimensionalen Hyperwürfel mit n 2 Knoten einzubetten, wird die Knotenmenge des Gitters in zwei k k Teilmengen aufgeteilt: n1 2 1 und n2 2 2 • dabei gilt k als Dimension des Würfels mit: k k1 k 2 • Für jede dieser Mengen wird eine Gray-Code-Folge erstellt: RGC k1 (a1 ,..., a n1 ) und RGC k (b1 ,..., bn ) 2 41 2 3. Arten von Verbindungsnetzwerken - Einbettung statischer V.-Netzwerke • Aus den beiden Gray-Code-Folgen wird eine n1 n2 Matrix M nach folgendem Schema erstellt: a1b1 a b 2 1 M a n1 b1 a1b2 a n1 b2 a1bn2 a n1 bn2 • Alle Elemente der Matrix sind Bitwörter der Länge k und unterscheiden sich jeweils in nur einem Bit voneinander • Alle Knotennamen eines k-dimensionalen Hyperwürfels sind in dieser Matrix vorhanden 42 3. Arten von Verbindungsnetzwerken - Einbettung statischer V.-Netzwerke • folgende Formel beschreibt die Einbettung mathematisch: : {1,..., n1}{1,..., n2 } {0,1}k mit ((i, j )) M (i, j ) • Als Beispiel: 2x4 Gitter in 3-dimensionalen Würfel 110 110 111 101 111 100 010 011 100 010 011 001 000 000 43 101 001 3. Arten von Verbindungsnetzwerken – Dynamische V.-Netzwerke 3.3 Dynamische Verbindungsnetzwerke 3.3.1 Einordnung dynamischer Verbindungsnetzwerke 3.3.3 Topologien dynamischer Verbindungsnetzwerke 44 3. Arten von Verbindungsnetzwerken–Einordnung dynamische V.-Netzw. 3.3.1 Einordnung dynamischer Verbindungsnetzwerke • • • • • • • Im Gegensatz zu statischen Netzwerken keine feste Punktzu-Punkt-Verbindung Aufgebaut aus physikalischen Leitern und dazwischenliegenden Schaltern Verbindung einzelner Knoten bei Bedarf Deshalb auch Bezeichnung: indirekte Verbindungsnetzwerke Verwendung meist in Systemen mit gemeinsam genutzten Speicher Zur Einordnung: heranziehen topologischer Merkmale Je komplexer ein Netzwerk ist, desto höher sind die Hardwarekosten aber auch die Leistung des Netzwerks 45 3. Arten von Verbindungsnetzwerken–Topologien dynamische V.-Netzw. 3.3.2 Topologien dynamischer Verbindungsnetzwerke Folgende dynamische Verbindungsnetzwerke werden vorgestellt: • • • • „Crossbar“-Netzwerk „Omega“-Netwerk „Butterfly“(„Banyan“)-Netzwerk „Benes“-Netzwerk 46 3. Arten von Verbindungsnetzwerken–Topologien dynamische V.-Netzw. „Crossbar“-Netzwerk • Höchste Verbindungskapazität zwischen Knoten • Ein n m „Crossbar“-Netzwerk besitzt n Eingänge (P), m Ausgänge (M) und n m Schalter • Die Schalter können eine Nachricht entweder geradeaus oder nach unten weiterleiten • Höchstens ein Schalter pro Spalte darf auf Umleiten gesetzt werden, da sonst nicht der kürzeste Weg durchs Netzwerk gewählt wird • Mögliche Schalterstellungen: Nicht umleiten Umleiten 47 3. Arten von Verbindungsnetzwerken–Topologien dynamische V.-Netzw. P P 1 Nachricht von P2 nach M2: 2 Schalter wird auf umleiten gesetzt ! P n M M 1 M m 2 n x m „Crossbar“-Netzwerk 48 3. Arten von Verbindungsnetzwerken–Topologien dynamische V.-Netzw. 2x2 „Crossbar“-Schalter • Die weiteren dynamischen Netzwerke, die häufig in der Praxis verwendet werden, sind aus Knoten und dazwischenliegenden 2x2 „Crossbar“-Schaltern aufgebaut • Folgende vier Schalterstellungen sind damit möglich: straight lower broadcast crossover upper broadcast 49 3. Arten von Verbindungsnetzwerken–Topologien dynamische V.-Netzw. „ Omega“-Netzwerk • Ein n n „Omega“-Netzwerk besteht aus 2x2“Crossbar“-Schaltern, die in log n Stufen angeordnet sind n • Je Stufe 2 Schalter mit einem (log n 1) Bitwort und der Stufenzahl bezeichnet • Beispiel: ein 2-dimensionales „Omega“-Netzwerk hat dann je 4 Schalter pro Stufe: bei 3 Stufen insgesamt 12 Schalter • Dimension k des Netzwerks: Stufenanzahl - 1 50 3. Arten von Verbindungsnetzwerken–Topologien dynamische V.-Netzw. • Die festen Verbindungen im Netzwerk zwischen den einzelnen Stufen folgen einer Regel: Es gibt eine Kante von Schalter ( ,i) in Stufe i zu den beiden Schaltern ( ,i+1) in Stufe i+1, die dadurch definiert sind, dass - entweder durch einen zyklischen Linksshift aus hervorgeht oder - dadurch entsteht, dass nach einem zyklischen Linksshift von das letzte Bit invertiert wird. 51 3. Arten von Verbindungsnetzwerken–Topologien dynamische V.-Netzw. Ein 2-dimensionales „Omega“-Netzwerk: Stufe 0 Stufe 1 Stufe 2 ... - entweder durch einen zyklischen Linksshift aus hervorgeht oder 00 - dadurch entsteht, dass nach einem zyklischen Linksshift von das letzte Bit invertiert wird. 01 10 11 52 3. Arten von Verbindungsnetzwerken–Topologien dynamische V.-Netzw. „ Butterfly“(„Banyan“)-Netzwerk • Die Anzahl an Kanten, Schaltern und Knoten unterscheidet sich nicht von einem „Omega“-Netzwerk • Nur die Bildungsregel für die festen Verbindungen unterscheidet sich: Es gibt eine Kante von Schalter ( ,i) in Stufe i zu den beiden Schaltern ( ,i+1) in Stufe i+1, die dadurch definiert sind, dass - und identisch sind (straight edge - direkte Kante) - und sich nur im (i+1)-ten Bit von links unterscheiden (cross edge – Kreuzkante) 53 3. Arten von Verbindungsnetzwerken–Topologien dynamische V.-Netzw. Ein 2-dimensionales „Butterfly“-Netzwerk: Stufe 0 Stufe 1 Stufe 2 ... - und identisch sind (straight edge - direkte Kante) 00 01 - 10 11 54 und sich nur im (i+1)-ten Bit von links unterscheiden (cross edge – Kreuzkante) 3. Arten von Verbindungsnetzwerken–Topologien dynamische V.-Netzw. „ Benes“-Netzwerk • Ein k-dimensionales „Benes“-Netzwerk setzt sich aus zwei k-dimensionalen „Butterfly“-Netzwerken zusammen • Die ersten k+1 Stufen bilden ein reguläres „Butterfly“Netzwerk • Die letzten k+1 Stufen ein umgekehrtes „Butterfly“Netzwerk • Die letzte Stufe des regulären und die erste Stufe des umgedrehten Netzwerks fallen aufeinander 55 3. Arten von Verbindungsnetzwerken–Topologien dynamische V.-Netzw. Ein 2-dimensionales „Benes“-Netzwerk: Stufe 0 Stufe 1 Stufe 2 00 01 10 11 56 Stufe 3 Stufe 4 4. Routingtechnik 4.1 Routingalgorithmen 4.2 Switching-Strategien 57 4. Routingtechnik – Routingalgorithmen 4.1 Routingalgorithmen 4.1.1 Einordnung von Routingalgorithmen 4.1.2 Deterministische Routingalgorithmen 4.1.3 Adaptive Routingalgorithmen 58 4. Routingtechnik – Einordnung von Routingalgorithmen 4.1.1 Einordnung von Routingalgorithmen Drei Punkte sind bei der Pfadbestimmung im Netzwerk im Besonderen zu beachten: • Topologie: Verbindungswege von Knoten a zu Knoten b hängen vom Aufbau des Netzwerk ab • Contention (=Auseinandersetzung): zwei oder mehr Nachrichten sollen über dieselbe Kante verschickt werden Wartezeiten • Congestion (=Stau): viele Nachrichten sollen über dieselbe Kante verschickt werden; der Puffer wird voll Nachrichten werden verworfen 59 4. Routingtechnik – Einordnung von Routingalgorithmen Im schlimmsten Fall kommt es in einem Netzwerk zu einem „Deadlock“: Dieser tritt auf wenn jede Verbindungskante, die von einer Nachricht aus einer Menge von Nachrichten genutzt werden soll, schon von einer Nachricht derselben Menge benutzt wird. Somit lässt sich keine Nachricht dieser Menge weiterschicken, und der Verkehr im Netzwerk steht still. 60 4. Routingtechnik – Einordnung von Routingalgorithmen 4.1.1 Einordnung von Routingalgorithmen Ziel eines Routingalgorithmus: • Vermeiden von Wartezeiten, Staus • Deadlockfreiheit (lässt sich durch Kanalabhängigkeitsgraphen darstellen und beweisen: Diese werden hier jedoch aufgrund der Komplexität, auch schon für kleine Netzwerke, nicht näher erläutert.) 61 4. Routingtechnik – Einordnung von Routingalgorithmen Routingalgorithmen lassen sich in zwei Klassen einteilen: • Deterministischer Ansatz: Wahl des Pfades nur Abhängig von Start- und Zielknoten der Nachricht • Adaptiver Ansatz: mehrere Pfade werden unter Berücksichtigung der Auslastung des Netzwerks berechnet Bei beiden Ansätzen gibt es zwei Varianten: • minimale Algorithmen: wählen immer den kürzesten Weg • nichtminimale Algorithmen: erlauben auch Umwege, um Staus zu vermeiden 62 4. Routingtechnik – Deterministische Routingalgorithmen 4.1.2 Deterministische Routingalgorithmen Dimensionsgeordnetes Routing • XY-Routing (im 2-dimensionalen Gitter) • E-Cube-Routing (im k-dimensionalen Hyperwürfel) 63 4. Routingtechnik – Deterministische Routingalgorithmen XY-Routing (im 2-dimensionalen Gitter) • Knoten werden mit XY-Koordinaten beschrieben • Nachricht von Knoten A zu Knoten B läuft erst nach links oder rechts in horizontaler (x)-Richtung und dann hoch oder runter in vertikaler (y)-Richtung bis zum Zielknoten • Deadlockfreiheit durch Kanalabhängigkeitsgraph beweisbar, da keine Zyklen auftreten 64 4. Routingtechnik – Deterministische Routingalgorithmen Beispiel für XY-Routing: Pfad von Knoten A mit Position (x:1,y:2) zu Knoten B mit Position (x:4,y:1) y:3 x:1,y:2 A x:4,y:2 y:2 B y:1 Y-Achse x:2 x:1 x:3 X-Achse 65 x:4 x:4,y:1 x:5 4. Routingtechnik – Deterministische Routingalgorithmen E-Cube-Routing (im k-dimensionalen Hyperwürfel) • Knoten haben k-Bitworte als Bezeichnung • Durch Invertieren jedes einzelnen Bits eines solchen Bitwortes können alle direkt miteinander verbundenen Knoten gefunden werden • Eine Nachricht von Knoten A mit Bitnamen ... k 1 soll an Knoten B mit Bitnamen 0 ... k 1 verschickt werden, wobei Ai mit Bitdarstellung 0 ... k 1 ein Knoten auf dem Weg von A nach B ist 66 4. Routingtechnik – Deterministische Routingalgorithmen Bei jedem Knoten Ai auf dem Weg wird dies berechnet: • Ai berechnet das k-Bitwort (bitweise ausschließendes ODER) • und schickt die Nachricht in Richtung der Dimension d (d ist die am weitesten rechts liegende Position von mit dem Wert 1) • Den zugehörigen Knoten Ai 1 erhält man durch die Invertierung des d-ten Bits Auch für E-Cube-Routing lässt sich Deadlockfreiheit beweisen. 67 4. Routingtechnik – Deterministische Routingalgorithmen Beispiel für E-Cube-Routing: Pfad von Knoten A (110) nach Knoten B (001) 001 110 111 101 d 111 110 100 1 2 3 Ai 111 101 001 A:110 111 011 010 100 000 68 101 B:001 4. Routingtechnik – Deterministische Routingalgorithmen Quellenbasiertes Routing • Sender wählt den kompletten Pfad selbst aus und hängt die nacheinander auszuwählenden Ausgabekanäle als Header an die Nachricht an • Bei jedem Knoten wird der Header überprüft, und der gerade passierte Ausgabekanal aus dem Header entfernt • Die Nachricht wird über den nächsten Ausgabekanal weiterverschickt 69 4. Routingtechnik – Deterministische Routingalgorithmen Tabellenorientiertes Routing • jeder Knoten des Netzwerks beinhaltet eine Tabelle mit Routinginformationen • zu jeder Zieladresse ist der zu wählende Pfad eingetragen 70 4. Routingtechnik – Deterministische Routingalgorithmen Routing nach dem Turn-Modell • Durch geschickt vorgegebene Richtungswechsel sollen Deadlocks vermieden werden • Es werden einfach bestimmte Richtungswechsel verboten • (z.B. ist beim XY-Routing nur ein einziger Richtungswechsel erlaubt!) • Ein solches Modell für 2-dimensionale Gitter ist das WestFirst Routing 71 4. Routingtechnik – Deterministische Routingalgorithmen West-First Routing • Von 8 möglichen Richtungswechseln in einem 2dimensionalen Gitter ist der Richtungswechsel nach Westen nicht erlaubt • Zuerst wird daher immer in Richtung Westen versendet, bis die nötige x-Koordinate erreicht ist • Danach in die anderen möglichen Richtungen (Nord, Süd, Ost) • Mögliche Richtungswechsel beim West-First Routing: N Erlaubte Richtungswechsel W Nicht erlaubte Richtungswechsel O S 72 4. Routingtechnik – Deterministische Routingalgorithmen Beispiel für West-First Routing: von Knoten A zu Knoten B und zurück W von B nach A N O S A B blockierte Verbindungen 73 4. Routingtechnik – Adaptive Routingalgorithmen 4.1.3 Adaptive Routingalgorithmen Hier werden zwei Konzepte herausgegriffen und vorgestellt: • Virtuelle Kanäle (z.B. der minimal adaptive Routingalgortihmus) und • Routing im „Omega-Netzwerk“ 74 4. Routingtechnik – Adaptive Routingalgorithmen Virtuelle Kanäle • Mehrere virtuelle Verbindungen zwischen zwei benachbarten Knoten werden bereitgestellt • Dazu wird eine vorhandene Verbindungskante in mehrere gleichberechtigte Kanäle unterteilt • Jeder Kanal besitzt einen Pufferspeicher, um Nachrichten zwischenzuspeichern (bis er an der Reihe ist) • Ein Beispiel für das Konzept der virtuellen Kanäle ist der minimal adaptive Routingalgorithmus 75 4. Routingtechnik – Adaptive Routingalgorithmen • • • • • Minimal adaptiver Routingalgorithmus Teilt das gegebene Netzwerk in zwei logische Teilnetzwerke X- und X+ ein, die sich nur in den vertikalen Verbindungen unterscheiden X+ enthält nur positive vertikale Verbindungen (nach rechst führende) X- enthält nur negative vertikale Verbindungen (nach links führende) So kann je nach Auslastung des Netzwerks und Richtung des Pfades eines der beiden Teilnetze verwendet werden (für 2-dimensionale Gitter deadlockfrei) 76 4. Routingtechnik – Adaptive Routingalgorithmen Beispiel für minimal adaptiven Routingalgorithmus: Aufteilung in virtuelle Kanäle „X+“-Teilnetz „X-“-Teilnetz 77 4. Routingtechnik – Adaptive Routingalgorithmen Routing im „Omega“-Netzwerk • Nachrichten werden anhand eines verteilten Kontrollschemas weitergeleitet • Hierzu kann jeder Schalter ohne Koordination mit anderen Schaltern eine Nachricht weiterleiten • Die n Ein- und Ausgabekanäle haben Bitnamen der Länge log n wobei der Eingangskanal den Bitnamen und der Ausgangskanal den Bitnamen trägt • Bei Weiterleitung muss nun der Schalter auf Stufe k mit k 0,..., log n 1 das k-te Bit k (von links) des Ausgangskanals untersuchen und folgende Schritte unternehmen: 78 4. Routingtechnik – Adaptive Routingalgorithmen • Ist das k-te Bit k 0 , so wird die Nachricht auf den oberen Ausgang des Schalters gelegt • Ist das k-te Bit k 1 , so wird die Nachricht auf den unteren Ausgang des Schalters gelegt n 2 Nur n Nachrichten können gleichzeitig ohne Blockierung gesendet werden (Außer im nicht-blockierenden „Benes“Netzwerk). 79 4. Routingtechnik – Adaptive Routingalgorithmen Beispiel für Routing im „Omega“-Netzwerk: von 010 nach 110 Stufe 1 Stufe 2 Stufe 3 000 001 000 001 010 011 010 011 100 101 100 101 110 111 110 111 80 4. Routingtechnik – Switching-Strategien 4.2 Switching-Strategien 4.2.1 Einordnung von Switching-Strategien 4.2.2 Arten von Switching-Strategien 81 4. Routingtechnik – Einordnung von Switching-Strategien 4.2.1 Einordnung von Switching-Strategien • Die Übertragung von Nachrichten zwischen benachbarten Prozessoren wird durch die Software des Prozessors (einem Protokoll folgend: ähnlich TCP/IP) übernommen • Um die Schritte auszuführen wird eine gewisse Zeitspanne benötigt • Diese Zeitspanne die der Prozessor zur Bearbeitung benötigt zuzüglich der Zeitspanne, die die Nachricht unterwegs ist, nennt man Latenzzeit • Zur Beschreibung der Latenz und damit der Effizienz einer Switching-Strategie werden folgende Merkmale unterschieden: 82 4. Routingtechnik – Einordnung von Switching-Strategien • Bandbreite: maximale Frequenz der Datenübertragung in (Bytes/Sekunde) • Bytetransferzeit: benötigte Zeit um ein Byte zu 1 verschicken Bytetransferzeit Bandbreite • Übertragungszeit: benötigte Zeit um eine komplette ngröße Nachricht zu verschickenÜbertragungszeit Nachrichte Bandbreite • Signalverzögerungszeit: Zeitspanne zwischen Abschicken und Ankommen des ersten Bits beim Empfänger • Transportlatenz: Verweildauer der Nachricht im Netzwerk Transportlatenz Signalverzögerungszeit Übertragunszeit • Senderoverhead oder Startupzeit: benötigte Zeit, um Nachricht auf das Senden vorzubereiten • Empfängeroverhead: benötigte Zeit um Nachricht zu empfangen • Durchsatz: Netzwerkbandbreite bei einer Anwendung 83 4. Routingtechnik – Einordnung von Switching-Strategien Die gesamte Latenz setzt sich somit aus vier Komponenten zusammen: Latenz Senderoverhead Signalverzögerung Nachrichtengröße Empfängeroverhead Bandbreite Unter Voraussetzung eines konstanten Overheads und einer Punkt-zu-Punkt-Verbindung zwischen zwei Prozessoren, lässt sich folgende Laufzeitformel für die Latenz herleiten: T (m) t S t B m mit t S Startupzeit , t B Bytetransferzeit und m Nachrichtengröße Wird eine Nachricht über mehrere Verbindungsleitungen verschickt, kann dies durch folgende Switching-Strategien erfolgen. 84 4. Routingtechnik – Einordnung von Switching-Strategien Zeit: Beim Sender Senderoverhead Übertragungszeit Signalverzögerung Beim Empfänger Übertragungszeit Empfängeroverhead Transportlatenz Im Netzwerk Gesamtlatenz Gesamtzeit Illustration aus Rauber, T. und G. Rünger: Parallele und verteilte Programmierung. Springer 1998. 85 4. Routingtechnik – Arten von Switching-Strategien 4.2.2 Arten von Switching-Strategien Zwei Grundformen der Switching-Strategien werden erläutert: • Das Circuit-Switching und • das Paket-Switching in zwei Varianten: dem „Store-andForward-Routing“ und dem „Cut-Through-Routing“ 86 4. Routingtechnik – Arten von Switching-Strategien • • • • Circuit-Switching Der gesamte Pfad vom Quell- zum Zielknoten wird der Nachrichtenübertragung zur Verfügung gestellt und erst wieder freigegeben, wenn die Nachricht vollständig übertragen wurde Intern wird die Nachricht in Teilstücke (phits: physical units) eingeteilt Ein „phit“ bezeichnet die Datenmenge, die pro Takt über eine Verbindungsleitung geschickt werden kann (1-64 bits) Zuerst wird eine kurze Nachricht („probe“) zum Aufbau der Verbindung verschickt; danach alle „phits“ der Nachricht und zum Schluss gegebenenfalls eine Empfangsbestätigung (zum Freigeben des Pfades) 87 4. Routingtechnik – Arten von Switching-Strategien Kosten des Circuit-Switching: • Kosten der Kontrollnachricht („probe“) zum Aufbau des Pfades der Länge l beträgt: t C l • wobei t C t B mC die Kosten zum Versenden der Kontrollnachricht je Verbindung bezeichnet ( mC : Größe des Kontrollpakets, t B : Bytetransferzeit ) • Die Gesamtkosten zum Versenden der eigentlichen Nachricht der Größe m betragen somit: TCS (m, l ) t S t C l t B m Startupzeit Reine Kosten des Sendens der Nachricht Kosten der Kontrollnachricht 88 4. Routingtechnik – Arten von Switching-Strategien Aktivitäten und Latenzzeit bei einer Einzeltransferoperation über einen Pfad der Länge l = 4 unter Verwendung von Circuit-Switching: Quelle 0 1 2 3 Ziel Knoten Quelle 0 1 2 3 Aufbau des Pfades („probes“) Gesamter Pfad ist für die Nachrichtenübertragung aktiv Zeit (Aktivität des Knotens) Illustration aus Rauber, T. und G. Rünger: Parallele und verteilte Programmierung. Springer 1998. 89 4. Routingtechnik – Arten von Switching-Strategien Paket-Switching • die Nachricht wird in Teilstücke „Pakete“ unterteilt, die unabhängig voneinander über das Netzwerk zum Ziel geschickt werden (auch die einzelnen Pakete sind wieder in „phits“ aufgeteilt) • Bei Verwendung von adaptiven Routingalgorithmen werden somit unterschiedliche Pfade zum Versenden benutzt • Jedes Paket besteht aus 3 Teilen: dem Header (mit Routing- und Kontrollinformationen), dem reinen Datenteil und dem Endstück mit Fehlerkontrollcodes 90 4. Routingtechnik – Arten von Switching-Strategien Eine Variante des Paket-Switching ist das „Store-and-Forward-Routing“ • In jedem Knoten (auf dem Pfad) wird das Paket vollständig zwischengespeichert, bevor es weitergeschickt wird • Dadurch kann die gerade benutzte Kante schnell freigegeben werden • Nachteil: hohe Speicherkapazität im Knoten erforderlich • Vorteil: geringere Deadlock-Gefahr 91 4. Routingtechnik – Arten von Switching-Strategien Kosten des „Store-and-Forward-Routing“ (bzw. des Versendens eines Paketes): • Konstante Zeit in jedem Knoten, zum Kontrollieren des Headers und wählen des Ausgabekanals: t h • Zeit zur Versendung des Pakets der Größe m zum nächsten Knoten: t B m • Die Gesamtkosten zur Versendung eines Paketes auf einem Pfad der Länge betragen l somit: TSF (m, l ) t S l (t h t B m) Zeit pro Knoten (Headerkontrolle) + Versendung zum nächsten Knoten * Pfadlänge Startupzeit 92 4. Routingtechnik – Arten von Switching-Strategien Aktivitäten und Latenzzeit bei einer Einzeltransferoperation über einen Pfad der Länge l = 4 unter Verwendung von Store-and-Forward-Routing: Quelle 0 1 2 3 Ziel Knoten Quelle 0 H 1 H 2 H 3 H Übertragung über erste Verbindung Übertragung über zweite Verbindung Übertragung über dritte Verbindung Übertragung über vierte Verbindung Zeit (Aktivität des Knotens) Illustration aus Rauber, T. und G. Rünger: Parallele und verteilte Programmierung. Springer 1998. 93 4. Routingtechnik – Arten von Switching-Strategien Eine zweite Variante des Paket-Switching ist das „Cut-Through-Routing“ • Auch hier Einteilung in Pakete und „phits“ wie bei Storeand-Forward-Routing • Im Unterschied zu SFR wird, sobald der Header im nächsten Knoten angekommen ist, eine neue Verbindung zum nächsten Knoten aufgebaut, bevor(!) alle „phits“ des Paketes übertragen wurden • Alle „phits“ werden auf dem selben Pfad dem Header hinterhergeschickt • Die Verbindungskante wird erst freigegeben, sobald alle „phits“ eines Paketes übertragen wurden (wie bei SFR) 94 4. Routingtechnik – Arten von Switching-Strategien Kosten des „Cut-Through-Routing“ (bzw. des Versendens eines Paketes): • Zeit für Übertragung des Headers: t H t B mH (mit mH= Größe des Headers) • Gesamtkosten für Übertragung eines Paketes bei Pfadlänge l : TCT (m, l ) t S l t H t B (m mH ) Startupzeit Kosten für Headerübetragung über die Pfadlänge 95 Kosten für Übertragung der restlichen Nachricht (nur einmal, da immer gleich hinterhergeschickt! Siehe Grafik nächste Folie) 4. Routingtechnik – Arten von Switching-Strategien Aktivitäten und Latenzzeit bei einer Einzeltransferoperation über einen Pfad der Länge l = 4 unter Verwendung von Cut-Through-Routing: Quelle 0 1 2 3 Ziel Knoten Quelle 0 H 1 2 3 H H H Übertragung des Headers Zeit (Aktivität des Knotens) Übertragung des Paketes Illustration aus Rauber, T. und G. Rünger: Parallele und verteilte Programmierung. Springer 1998. 96 5. Fazit Dies sollte vermittelt werden: • Grundlagen der existierenden Verbindungsnetzwerke • Grundlagen der Einbettung von Verbindungsnetzwerken • Einige spezielle Routing-Algorithmen und SwitchingStrategien 97 Fragen ? 98 Einbettung eines Netzwerks N‘ in N mit Streckungsgrad 1: 1 N‘ 8 2 3 4 1 8 6 2 7 6 5 3 4 5 7 N Zurück 99