elta mp 212
Transcrição
elta mp 212
K Netzwerke Vorlesung Rechnerarchitektur im SS 2010 Inhalt von K 1. Allgemeines Leistungsmerkmale Begriffe Dynamische Netzwerke Routing 2. Netzstrukturen Merkmale Ringstruktur MC: Mesh Connected (Gitter) Illiac-Netzwerk Baumstruktur Fat Tree CC: Cube Connected (Hypercube) CCC Barrel-Shifter Dynamische Verbindungsnetze Crossbar-Switch Mehrfachbussysteme Permutationsnetze Perfect-Shuffle Omega-Netz Bidelta-Netze Banyan Butterfly CLOS-Netz Verilog-Beispiel: Datenaustausch auf einem Ringnetz 3. Zusammenfassung RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt R. Hoffmann, FB Informatik, TU-Darmstadt E-1 max. Anzahl der gleichzeitigen Verbindungen Art der Verbindung, Funktionalität Simplex, Duplex Broadcasting/Multicasting 1:n, Vereinigung n:1 Leitungsvermittlung (circuit switching) Paketvermittlung (packet switching), Datenübertragungsrate auch "Übertragungsbandbreite" (MBit/s, MByte/s) konstant oder variabel abhängig von der Anzahl der Verbindungen, evtl. Blockierung abhängig von der Anzahl der angeschlossenen Stationen abhängig von der Ausdehnung des Netzes Latenzzeit Zeit bis zum Empfangen des ersten Zeichens E-3 RA – SS 10 , R. Hoffmann, Rechnerarchitektur, TU Darmstadt 1. Allgemeines: Leistungsmerkmale Zuverlässigkeit, Technische Zuverlässigkeit, Ausfallsicherheit Fehlertoleranz Redundante Wege Flexibilität für viele verschiedene Algorithmen/Anwendungen geeignet Erweiterbarkeit Möglichkeit, weitere Knoten und Kanten dem Netz hinzufügen Skalierbarkeit (Voraussetzung: Erweiterbarkeit): Durch die Erhöhung der Anzahl der Knoten/Links bleiben die wesentlichen Eigenschaften (wie Latenzzeit oder Verkehrsdichte) konstant oder steigen nur höchstens linear. Aufwand, Kosten, Komplexität Anzahl der Inputs/Outputs, Verbindungsleitungen, Puffer, Schalter, Steuerung der Schalter E-4 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Weitere Leistungsmerkmale Netztopologie, auch Netzstruktur, Verbindungsstruktur wie z. B. Linie (1D Feld), nicht symm. Ring, symmetrisch Stern Masche, teilweise oder vollständig Funknetz Symmetrische Topologie Bei einer symmetrischen Topologie sieht das Netz von jedem Betrachtungspunkt (Knoten/Links) gleich aus, d.h. es existieren für Knoten und/oder Kanten sog. Automorphismen. Einfach gesprochen heißt dies, dass sich Knoten und/oder Links in einem symmetrischen Netz gleich verhalten, egal von welchem Knoten oder welchem Link man es betrachtet. Dies vereinfacht die Hardware, das Routing, die Programmierung, und die Lastverteilung, da keine Spezialfälle zu behandeln sind. E-5 RA – SS 10 , R. Hoffmann, Rechnerarchitektur, TU Darmstadt Netztopologie Die logische Topologie kann von der physischen abweichen. Ethernet physisch: Stern oder Bus logisch: Bus Token-Ring physisch: Ring oder Stern logisch: Ring USB physisch: Baum logisch: Bus E-6 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Physische und Logische Topologie Das Herstellen von Verbindungen insbesondere die Steuerung zur Wahl der Wege einer Verbindung (Routing) Routingalgorithmus legt den Weg (Pfad) fest, Ziel: möglichst kurz dezentral: selbständig durch die Teilnehmerstationen, durch eine zentrale Verbindungsstation durch mehrere verteilte Verbindungsstationen E-7 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Vermittlung Weg (Link) Fest installierter Kommunikationskanal zwischen zwei Knoten (Kante im Graphen) Verbindung (auch Pfad, Path) die benutzten Wege vom Sender zum Empfänger Kanal die Kommunikationsmöglichkeit zwischen zwei Knoten ein Kanal kann über alternative Pfade laufen E-8 Multicasting/Broadcasting Die Daten werden vom Sender gleichzeitig an mehrere/alle Empfänger geschickt. Datenvereinigung Mehrere Sender schicken parallel Nachrichten an einen Empfänger. Die Daten überlagern sich. Ergebnis kann sinnvoll sein (Maximum, Summe) Statische Verbindungen Fest vorhandene (permanente) ungesteuerte Wege, die von den Knoten bei Bedarf benutzt werden. RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Weitere Begriffe Die gewünschten Verbindungen werden auf Anforderung dynamisch aufgebaut. Eine Steuerung des Netzwerks ist erforderlich. Wegewahl durch RoutingAlgorithmus Das Routing sollte einfach sein, um es in den Verbindungsknoten durch eine einfache Hardware implementieren zu können. nicht-blockierend beliebige Verbindungen können inkrementell (dynamisch) aufgebaut werden universell: eine beliebige Permutation ist (re)arrangierbar blockierend bestehende Verbindungen können weitere verhindern ggf. kann man durch Rearrangieren (Umordnung bestehender Verbindungen) noch weitere hinzufügen E-9 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Dynamische Verbindungstechnik auch Leitungsvermittlung, Durchschaltvermittlung fest geschaltete Verbindungen für die gesamte Dauer der Übertragung mit kurzen Latenzzeiten Ablauf 1. Senden der Adressierungsdaten. 2. Verbindungsaufbau 3. Übertragung der Nachrichten (Während der Übertragung kein weiterer Vermittlungsaufwand) 4. Verbindungsabbau nach der Übertragung Oft gesteuert durch zentrale Vermittlungseinrichtung Vorteil nach der Schaltung schnelle Verbindung Nachteil Zeitaufwand zum Aufbauen und Abbauen der Verbindung Verbindung kann nach der Belegung nicht anderweitig genutzt werden E-10 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Eine Vermittlungstechnik: Circuit Switching Eine andere Vermittlungstechnik: Paketvermitlung Vorteile Gute Ausnutzung der Netzressourcen Alternative Wege können benutzt werden Kein expliziter Schritt zum Aufbauen der Verbindung notwendig Nachteile Nachrichten müssen in Pakete aufgeteilt und wieder zusammengesetzt werden Aufwand: Puffer in den Knoten, Routing Staus und evtl. auch Deadlocks sind möglich Latenzzeiten sind variabel (abh. von Organisation, Route, Belastung) RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Eine Nachricht besteht aus Datenpaketen. Eine Nachricht wird über eine logische Verbindung (Kanal) vom Sender zum Empfänger übertragen Datenpakete wird dem Netz übergeben und können über verschiedene physikalische Verbindungen transportiert werden. Die Links zwischen den Knoten werden dynamisch für Pakete von verschiedenen Kanälen benutzt E-11 Paketvermittlung: Pakete, Phits E-12 Paket D D D D D Paket D Paket Paket D D S R Phit Routing Information Datenphits Paket Sequenzangabe Nachricht wird in Pakete zerlegt Paket wird in Einheiten (Phits) zerlegt Phit physical transfer unit (Flit = flow control unit, kann mehrere Phits umfassen) Beispiel High Performance Switch IBM SP1 / SP2: Phit= 8 Bit, Paket ≤ 255 Phits RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Nachricht Pakete können auf verschiedenen Wegen übertragen werden können verloren gehen oder in veränderter Reihenfolge ankommen. werden beim Empfänger wieder zusammengesetzt. Paketkopf enthält Adressierungsinformation Zwischenpufferung der Teilpakete (Blöcke, Phits) erfolgt in den Verbindungsknoten. Puffer in den Verbindungsknoten dürfen nicht überlaufen: wird verhindert durch Flow-Control durch spezielle Signale: ack, strobe oder FlussSteuerungspaket http://ds.e-technik.uni-dortmund.de/new/CEI/resource/prs/PRS_Slides_2004.ppt E-13 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Paketvermittlung: Übertragung 1. Source-based (quell-basiert) Alle Wege zu der Verbindung werden vom Sender (Source) festgelegt Das Paket wird mit allen Abzweiginformationen (Ausgangsnummer) versehen, um vom Sender zum Empfänger zu kommen. 2. Destination-based (zielbasiert) 3. Tabellenbasiert Eine verwendete Ausgangsnummer wird an den nächsten Knoten nicht mehr weiter geschickt. Das Paket enthält eine systemweit eindeutige Empfängeradresse, die von den Verbindungsknoten zum Routing benutzt wird. Die Route ist für alle Zieladressen vorausberechnet Verbindungsknoten liest aus Tabelle den zu verwendenden Ausgang E-14 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Paketvermittlung: Routing, Adreßdecodierung Deterministisches Routing Pakete benutzen immer die gleichen Wege für eine Verbindung einfach, aber höhere Blockierungswahrscheinlichkeit geringere Fehlertoleranz Adaptives Routing alternative Wege können benutzt werden. Blockierte Wege oder ausgefallene Knoten/Wege können umgangen werden E-15 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Routing Pfad Paketkopf Daten (bel. Länge) CRC, Endemark Pfad wird vom Sender vorbestimmt und von den durchlaufenen Vermitttlungsstufen auf dem Weg schrittweise entfernt (Deterministisches Source Routing). Paketkopf ermöglicht unterschiedliche Protokolle (Administrationsdaten, Ack-Pakete, Datenpakete, Adressierung des Empfangsprozesses, Absenderangaben) Datenpakete unterliegen keiner Längenbeschränkung Paket-Ende: Prüfsumme und Endemarkierung reihenfolgegetreue Paketauslieferung E-16 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Beispiel: Myrinet Paketvermittlung Store-and-Forward Routing E-17 S = Source, Z = Zwischenknoten, D = Destination Z Z D Paket ist kleinste Einheit, besitzt alle Wegeinformation, Pakete einer Nachricht sind voneinander unabhängig und können (müssen aber nicht) auf verschiedenen Pfaden übertragen werden Das Paket wird vollständig von einem Knoten empfangen (store), danach dekodiert und danach zum ausgewählten Weg weitergeleitet (forward) Wenn die Pakete einer Nachricht auf demselben Pfad übertragen werden, ist Paket-Pipelining möglich (Internet) Paket ist immer auf höchstens zwei Knoten und einen Weg verteilt. Paket-Laufzeit proportional zur Paketlänge und Anzahl der Wege Geringe Blockierungsrate, da nur zwei Knoten (lokal) beteiligt Bei einem Fehler: nur die letzte Paketübertragung muss wiederholt werden geeignet für fehleranfällige Netzwerke RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt S Wormhole Routing E-18 Nur ein Sende- und ein Empfangspuffer (weniger Speicherplatzbedarf als Store-and-Forward) Nur das erste Phit enthält die Routing Information, die weiteren Phits folgen diesem. Phits werden einzeln übertragen, aber guter Durchsatz durch Phit-Pipelining Phits werden nur übertragen, wenn der Weg nicht blockiert ist und der Empfangspuffer des nächsten Knotens nicht voll ist. Problem: Paket ist über viele Knoten und Leitungen verteilt. Korrektheit der Übertragung wird im Zielknoten überprüft, bei einem Fehler muss das ganze Paket erneut über den gesamten Weg übertragen werden. RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Blockiert durch andere Übertragung Die Knoten können eine begrenzte Zahl von Phits puffern. Im Unterschied zum Wormhole-Routing, wird im Blockierungsfall ein Teil des Paketrestes empfangen und zwischengespeichert. Das führt in der Tendenz dazu, dass Blockierungen sich über weniger Knoten ausdehnen und sich leichter wieder auflösen. blockiert blockiert voll Die Nachricht kann verteilt über mehrere Zwischenknoten gepuffert werden. angewendet im massiv-parallelen Rechner CRAY T3E E-19 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Buffered Wormhole Routing Virtual-Cut-Through Routing Z Z D blockiert Paketpuffer in den Knoten Phits werden von Knoten zu Knoten sofort weitergegeben, falls Weg nicht blockiert Im Unterschied zum WormholeRouting, wird im Blockierungsfall der gesamte Paketrest am Kopf aufgesammelt. Das führt in der Tendenz dazu, dass Blockierungen lokalen Charakter haben und sich noch leichter wieder auflösen. RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt S E-20 Knoten mit Paketpuffer Flitspeicher Paket 1 Eingang Ausgang Paket 2 Temporärer Paketpuffer RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Demultiplexer E-21 Virtual-Cut-Through RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Veranschaulichung E-22 Wormhole n R Anzahl der Knoten (z. B. Prozessoren, Speicherbänke) Anzahl der Ports pro Prozessor (Grad eines Knotens) Je höher der Grad, desto schneller ist die Kommunikation, teurer ist die Hardware; steigt mit Anzahl der Pins am Chip. weniger skalierbar ist die Architektur, weil Zahl der Pins begrenzt Ziel: kleiner Grad, möglichst konstant ( reguläre Struktur) W Summe der Wege (alle direkten bidirektionalen Verbindungen zwischen den Knoten) d Distanz, min. Anzahl der Wege einer Verbindung, Entfernung Je größer die Distanz, desto mehr Knoten/Links muss die Nachricht durchlaufen E-23 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt 2. Netzstrukturen: Merkmale Linie (1D Feld, lineares Feld) 1 2 3 4 Distanzen 0 n=5 R=2 R=1 W=n-1 Knoten Ports (innere Knoten) Ports (äußere Knoten) Wege nicht symmetrisch gut erweiterbar am Rand 0 Distanzen 1 2 3 4 1 2 3 4 1 2 3 1 2 1 1 2 2 1 3 3 2 1 4 4 3 2 1 1 Summe geteilt durch 20 : Mittlere Distanz 10 7 6 7 10 40 2 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt 0 E-24 n=8 R=2 W=8=n d=3 Knoten Ports Wege Distanz für die markierte Verbindung Achtung: Bei den folgenden Berechnungen werden bidirektionale Links (Wege) vorausgesetzt. E-25 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Beispiel n, R, W, d für Ringnetz Dmax Durchmesser, max. Distanz aller Verbindungen (Knotenpaare) im Netz Je größer der Durchmesser, desto länger dauert die Übertragung (mehr Knoten/Links müssen durchlaufen werden) kleiner ist die Ausfallsicherheit, weil mehr Knoten/Links korrekt funktionieren müssen Ziel: kleiner Durchmesser S Summe der Distanzen aller kürzesten Verbindungen (dient zur Berechnung der mittleren Distanz) Berechnung: reguläres Netz mit R=const.: Betrachte Verb. von einem Startknoten zu allen Endknoten, sonst: betrachte alle n Knoten als Starknoten und bilde Mittelwert E-26 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Weitere Merkmale: Durchmesser, Summe ... Beispiel Dmax und S für Ringnetz n gerade Dmax = 4 = n / 2 S = 1*2 + 2*2 + 3*2 + 4*1 = 16 n/2 S 2 i n2 i 1 n ungerade n 2 ( n2 1) n2 ( n2 )2 Dmax = 3 = ( n - 1 ) / 2 S=1*2 + 2*2 + 3*2 = 12 S 2 ( n 1) / 2 i i 1 ( n21 )2 n21 2 Dmax Dmax 2 Dmax RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt E-27 Weitere Merkmale: Distanzen mittlere Distanz Gibt an, wie lang die Verbindung im Mittel ist, n-1: Anzahl der Zielknoten 1/D = Maß für die Geschwindigkeit des Netzes Ziel: D möglichst klein DR = D*R normalisierte Distanz zur vergleichenden Bewertung: Bei mehr Ports wird die mittlere Distanz kleiner, aber die Kosten sind dafür höher. Es wird deshalb mit R multipliziert, um den Kostenfaktor einzubeziehen. Grobes Maß für die Kosten/Geschwindigkeit Formel gilt nur für reguläres Netz mit R=const. Ziel: möglichst klein RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt D = S/(n-1) E-28 Weitere Merkmale: Verkehrsdichte E-29 Maß für die notwendige Übertragungskapazität der Wege, zur vergleichenden Bewertung, Annahmen: jeder Prozessor erzeugt permanent die Einheitslast 1 n Prozessoren erzeugen die Last n im Mittel werden D Wege belastet die Gesamtlast verteilt sich gleichmäßig auf alle Wege W RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt V = (D*n)/W mittlere Verkehrsdichte n gerade Summe Distanzen Durchmesser Norm. Distanz Verkehrsdichte S = 16 = n2/4 D = 16/7 = n2/(4n-4) n/4 DR n/2 V n/4 E-30 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Beispiel D, DR und V für Ringnetz Weitere Merkmale: Bisektionsweite Bmin Je niedriger also die Bisektionsweite, desto ungünstiger wirkt sich dies auf den Zeitbedarf für den Datenaustausch zwischen den beiden Netzhälften aus. B=8 Bmin=6 Bmin=6 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Die Bisektionsweite Bmin gibt die minimale Anzahl von Links an, die durchschnitten werden müssen, um ein Netz mit N Knoten in zwei Netze mit jeweils N/2 Knoten zu teilen. Damit ist sie ein Maß für die Kommunikationsfähigkeit eines Netzes, da in vielen Algorithmen die Knoten der einen Netzhälfte mit den Knoten der anderen Hälfte kommunizieren. Die Bisektionsweite mulitpliziert mit der Bandbreite eines Links entspricht der Bisektionsbandbreite E-31 Weitere Merkmale: Konnektivität Hmin Hmin = 2 Bemerkung: Es läßt sich analog zur Kanten-Konnektivität eine KnotenKonnektivität definieren (Wieviele Knoten müssen entfernt werden um die Weiterleitung von Nachrichten zu unterbrechen) RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Minimale Anzahl Hmin von Wegen, die aus dem Netz entfernt werden müssen, um das Netz zu unterbrechen, d.h. in zwei unverbundene Teilnetze zu zerlegen. Je höher die Konnektivität, desto mehr unabhängige Verbindungen zwischen je zwei Knoten gibt es im Mittel besser ist die Ausfallsicherheit, weil es alternative Pfade (Umwege) gibt. schneller ist die Kommunikation, weil hoch belastete Stellen des Netzes (Staus, Blockierungen) umgangen werden können. Ziel: Hohe Konnektivität E-32 Weitere Merkmale: Fehlertoleranz F RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Allgemein: die Eigenschaft eines technischen Systems, seine Funktionsweise auch aufrechtzuerhalten, wenn Fehler in der Hardware, der Software oder bedingt durch unzulässige Eingaben auftreten. verschiedene Definitionen sind möglich, hier wird vereinfachend definiert F = Hmin - 1 E-33 Ziel: hohe Fehlertoleranz F=1 Fehlertoleranz H=6 F=5 H=8 F=7 Es sind alle möglichen Schnitte zu betrachten, die das Netz in zwei Teile zerlegen. Hier einige davon H=9 F=8 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Hmin=4 Fmin=3 E-34 Ringnetz, Bewertung Chordaler Ring n R=2 W=n Dmax n/2 D n/4 DR n/2 V n/4 F=1 Durch zusätzliche Verbindungen ergeben sich Strukturen mit höhereren Leistungen und höherer Fehlertoleranz RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Anzahl der Prozessoren Ports Summe Wege Durchmesser Mittlere Distanz Normalisierte Distanz Verkehrsdichte Fehlertoleranz E-35 EIB data ring for internal communication Four 16 byte data rings, supporting multiple transfers 96B/cycle peak bandwidth Over 100 outstanding requests (c) Dr. Michael Perrone, IBM 6.189 IAP 2007, Lecture 2 Introduction to the Cell Processor Michael Perrone ([email protected]). E-36 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt IBM Cell Processor: Element Interconnect Bus Four 16B data rings connecting 12 bus elements Two clockwise / Two counter-clockwise Physically overlaps all processor elements Central arbiter supports up to three concurrent transfers per data ring Two stage, dual round robin arbiter Each element port simultaneously supports 16B in and 16B out data path Ring topology is transparent to element data interface E-37 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Element Interconnect Bus – Data Topology Vollständig vernetzt n R = n-1 W = n *(n-1)/2 Dmax = 1 D=1 DR = n-1 V = 2/(n-1) F = n-2 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Anzahl der Prozessoren Ports Summe Wege Durchmesser Mittlere Distanz Normalisierte Distanz Verkehrsdichte Fehlertoleranz E-38 Modell MC: Mesh Connected, (n-dimensionales Gitter) Dimension Modell Bezeich. Ports Ports am Rand 1 MC1 Reihe 2 1..2 2 MC2 Gitter 4 2..4 3 MC3 Würfel Cube 6 3..6 n MCn n-Cube 2n n..2n RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Varianten zyklische Verbindung der Ränder (wrap-around) zyklische Verbindung, um eine Zeile versetzt (Illiac-Netzwerk) Merkmale nur lokale Kommunikation zwischen den Nachbarn für massiv parallele Anwendungen gut geeignet gut erweiterbar, Ports=const. Anwendungen Algorithmen mit lokaler Kommunikationstruktur, Modellierung physikal. Prozesse 2-dim. Gitter zur Lösung partieller Differentialgleichungen Zellularautomat, CRAY-T3 (3-dim Prozessorfeld) E-39 MPP = Massively Parallel Processor System T3E-1350: bis 1024 AlphaProzessoren (EV5.6) 675 MHz, 1 Prozessor pro Knoten 3-D-Netzwerk mit Wrap-around (Torus), schneller Zugriff auf benachbarte Knoten E-40 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Beispielrechner: 1996: CRAY T3E Figure 8. +X, +Y, and +Z Information Travel. Dimension Order Routing. Information travels in the X dimension first, then thrugh the Y dimension, and finally through the Z dimension the information arrives at the destinat on node. Each transfer of information over a communication link is hereafter referred to as a hop. Figure 9. -X, -Y, -Z Information Travel E-41 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt CRAY T3E, Routing E-42 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt CRAY T3E, Routing Figure 10. Avoiding a Bad Communication Link in the Y Dimension. RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Illiac-Netzwerk E-43 Baumstruktur Strukturvarianten, gegeben durch Verzweigungsgrad (Anzahl der Ports nach unten/oben) Anzahl der Ebenen Anzahl der nicht angeschlossenen Knoten Binärbaum Kommunikation erfolgt über den darüber liegenden Knoten/Weg (möglicher Engpaß, fehleranfällig) X-Baum zusätzliche Querverbindungen sind denkbar, z.B. X-Baum, Pyramide wichtiger Sonderfall: Sternnetz Stern RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt E-44 Ziel: zwischen allen Knotenpaaren soll in etwa die gleiche Übertragungskapazität zur Verfügung gestellt werden. Die Kapazität der Kanten nimmt mit der Höhe der Ebene zu. Die Komplexität eines Knotens nimmt mit der Ebene zu. Routing: auf direktem Weg über niedrigsten gemeinsamen Vorfahren Bild entnommen aus http://www.it.irf.uni-dortmund.de/IT/Resource/prs/PRS_Slides_2004.ppt E-45 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Fat Tree n = 2k Knoten, k = Dimension k=1 Knoten können durch eine Dualzahl mit k Bits codiert werden verbunden sind die Knoten, die sich bei dualer Codierung genau an einer Bitposition unterscheiden (HammingDistanz 1). Es gibt k direkte Wege, die von einem Knoten ausgehen bzw. in ihm enden. k=2 k=4 k=3 k=4 E-46 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Modell CC: Cube Connected (Hyperwürfel), Hypercube Hypercube, im Kreis angeordnet E-47 Hypercube Mittlere Distanz D ist kleiner als k, Berechnungsbeispiel: k=2 k=3 k=4 k Anzahl der Prozessoren Ports Summe Wege Durchmesser Mittlere Distanz Normalisierte Distanz Verkehrsdichte Fehlertoleranz 2*1 + 1 * 2 = 4/3 = 1,5 3*1 + 3*2 + 1*3 = 12/7 =1.71 4*1 + 6*2 + 4*3 +1*4 = 32/15 = 2,133 D k/2 n = 2k R=k W = k* 2k-1 Dmax = k = log n D k/2 DR k2/2 V1 F = k-1 k=3 geeignet für eine Vielzahl von Algorithmen (Hypercube-Alg.) Erweiterbarkeit schlecht (Anzahl der Ports erhöht sich, Verdoppelung der Knoten) gute Fehlertoleranz RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt E-48 k-dimensionalen Hyperwürfel, bei dem jeder Hyperknoten durch einen Ring der Länge k ersetzt wird. Jeder dieser k Ringknoten besitzt neben den zwei Ringkanten eine weitere Kante zu einem anderen Hyperknoten Eigenschaften: logarithmischer Durchmesser konstanter Knotengrad (=3) Erweiterung nur in Zweierpotenzen E-49 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt CCC(k), Cube Connected Cycles Barrel-Shifter n = 2k Knoten verbunden sind die Knoten mit den Abständen 1, 2, 4, ... 2k-1 (Schiebeschritte mit allen Zweierpotenzen) Beliebiger Shift wird aus Zweierpotenzen zusammengesetzt 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt E-50 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Barrel Shifter (2) Andere Darstellung E-51 Vergleich Hypercube Ring n=8 Hypercube n=8, k=3 Anzahl der Prozessoren n n = 2k 8 8 Ports R 2 k = log2 n 2 3 höherer Aufwand Summe Wege W n k* 2k-1 = n/2 * log2n 8 12 höherer Aufwand Durchmesser Dmax n/2 k = log2 n 4 3 kleiner Mittlere Distanz D n/4 k/2 = 0.5 log2 n 2 1.5 kleiner Normalisierte Distanz DR n/4 k2/2 2 4,5 ungünstiger Verkehrsdichte V n/4 1 2 1 geringer Fehlertoleranz F 1 k-1 1 2 besser Zum Vergleich sollten die Kosten der Netze nach einer angenommenen Kostenfunktion berechnet werden, z. B. nach folgender Formel mit den Koeffizienten a, b, c: Eine mögliche Kostenfunktion f = a *(W*V) + b*(n) + c*(n*R*V) berücksichtigt Wegekosten und notwendige Übertragungskapazität berücksichtigt die Kosten der Ports berücksichtigt Grundkosten eines Knoten RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Ring E-52 Vergleich für n = 64 Knoten MC2Wrap m gerade Anzahl der Prozessoren n n=m Ports R 2 4 Summe Wege W n 2m Durchmesser Dmax n/2 m 2 Hypercube n=2 k k 2 BarrelShifter n=2 k Ring n=64 MC2Wrap m=8 Hypercube n=64 k=6 Barrelshifter n=64 k=6 64 64 64 64 2k -1 k* 2 k-1 k 2 k-1 (2k-1) k/2 2 4 6 64 128 192 32 8 6 11 Aufwand 352 3 kürzer Mittlere Distanz D n/4 ~m ~k/2 Normalisierte Distanz DR n/2 ~4m ~k /2 ~ 2/3 * k Verkehrsdichte V n/4 ~m/2 ~1 Fehlertoleranz F 1 3 k-1 2 ~k/3 16 2 8 3 2 16 32 18 24 ~1/3 16 4 1 1/3 2(k-1) 1 3 5 10 niedriger RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Ring E-53 Schaltbares Verbindungsnetz Alle Knoten/Prozessoren werden über ein gemeinsames Verbindungsnetz miteinander auf Anforderung dynamisch verbunden. Häufig werden verwendet: Crossbar Bussysteme Mehrstufige Netze E-54 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Dynamische Verbindungsnetze Crossbar-Switch, Kreuzschienenverteiler, Schaltermatrix maximal n2 Bits ohne Datenvereinigung n*log2(n+1) (höchstens ein Punkt vertikal) ohne Broadcasting noch geringer (höchstens ein Punkt horizontal) wegen der vielen Anschlüsse nur begrenzt als Baustein herstellbar schlecht erweiterbar Bits zur Steuerung RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt blockierungsfrei: beliebiger Prozessorausgang kann mit einem beliebigen Prozessoreingang verbunden werden maximal können gleichzeitig n Verbindungen (bei n Prozessoren) aufgebaut werden prinzipiell Permutationen, BroadcastVerbindungen, Datenvereinigungen möglich. hoher Hardware-Aufwand (n2 Schalter) Steuerbits 1 aus (n+1) log2 (n+1) E-55 1987: CRAY Y-MP gemeinsame Register 8 CPUs 4 1. Stufe: 8 Crossbars (4 x 4) 2. Stufe: 4 Crossbars (8 x 8) 3. Stufe: 32 Mux/Demux(1 x 8) 3232 3232 32256 Mehrstufige Crossbars 1 256 Speicherbänke 4 YMP über gemeinsamen Speicher gekoppelt C90, T90 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt E-56 Kompromiss zwischen Einbussystem und Crossbar Kostengünstig: benötigen nur eine begrenzte Anzahl von Bussen und Schaltern kostengünstiger als ein großer Crossbar A B A B Blockierend Busarbitration gut erweiterbar Systemleistung sinkt mit der Anzahl der Knoten Einbussystem: keine Fehlertoleranz bei Busausfall E-57 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Mehrfachbussysteme Permutationsnetze Ein Permutationsnetz vertauscht die Ausgänge der Prozessoren und verbindet sie mit den Eingängen. Die Verbindungsfunktion beschreibt die Verbindungen zwischen den Prozessoren als Funktion Jede beliebige Permutation läßt sich direkt einstellen oder durch eine mehrfache Anwendung der Verbindungsfunktion realisieren. Die meisten Netzwerke sind nicht universell, erlauben aber den Transport eines Datums zwischen beliebigen Prozessoren durch eine Folge von Permutationen (Beispiel: geschlossener gerichteter Ring). 1 2 3 4 5 6 Verbindungsfunktion: f(i) = (i+1) mod n 7 im Mittel n/2 Schritte für einen Datentransport RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Universelles Permutationsnetz Durch mehrfache Anwendung der Verbindungsfunktion kann eine Menge von Permutationen Mi erzielt werden. 0 E-58 Perfect-Shuffle Perfektes Mischen n=2k Spielkarten werden in zwei gleich große Hälften geteilt, dann werden abwechslend aus den beiden Hälften die Karten für einen neuen Stapel entnommen. Abbildungsfunktion (Verbindungsfunktion): f(0)=0, f(n-1)=n-1 f(i) = 2i mod(n-1) für i=1 ...n-2 i: Quellknotennummer, 2i mod(n-1): Zielknotennummer oder bei dualer Codierung Zielknotencodierung <zyklischerLinksshift(Quellknotencodierung) n=23 i nicht universell Datentransport im Mittel in (log2 n)/2 Schritten, falls überhaupt möglich (maximal log2 n Schritte); s. nächste Folie 2i mod 7 0=ooo f(i) 0=ooo 1=ool 1 2 2=olo 2=olo 4 4 4=loo 3=oll 6 6 6=llo 4=loo 8 1 1=ool 5=lol 10 3 3=oll 6=llo 12 5 5=lol 7=lll 2i 7=lll RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt E-59 Perfect-Shuffle PS-Netz, Räumliche Abwicklung, Verdrahtung. Die Permutationen und erreichbaren Zielknoten durch Hintereinanderschaltung der Verbindungsfunktion 1. 2. 3. 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 Quell- und Zielknoten 7 Quellknoten Beachte: Nicht alle Zielknoten sind von jedem Startknoten aus erreichbar! Gruppen: {{0}, {1,2,4}, {3,5,6}} nur die Knoten innerhalb einer Gruppe sind erreichbar Zielknoten RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Zielknoten werden durch Sequentielle Anwendung der Verbindungsfunktion (Shuffle-Wege) erreicht E-60 Shuffle-Exchange-Verdrahtung Durch zusätzlich Exchange-Wege können alle Knoten erreicht werden Quellknoten Exchange-Schalter Zielknoten 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 Bei der dualen Codierung der Knoten bedeutet Exchange die Invertierung der niedrigsten Bitstelle RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Shuffle-Wege + Exchange-Wege E-61 Schalter b c Kleine Exchange-Schalter (z. B. 2x2) dienen als Zellen, die in Stufen zu komplexen Netzen verschaltet werden. Elementare Schalterzustände: Durchschaltung (a), Kreuzschaltung (b), obere (c) und untere (d) Vervielfältigung d RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt a E-62 Hintereinanderschaltung der Shuffle-Verdrahtung mit s ExchangeSchaltern Bei n = 2k Eingängen/Ausgängen werden k = log2 n Stufen benötigt. s = (k/2)* 2k = k *2k-1 Schalter (Hardware-Aufwand gering) nicht alle Permutationen 2k! können geschaltet werden, nur 2s , nicht universell z.B. dreistufiges Omega-Netz hat 8 Eingänge und 3*4=12 Schalter 8! = 40.320 Permutationen, 212 = 4096 Schalterzustände Routing R von Source s nach Destination d duale Codierung: vergleiche s- und d-Bits von links nach rechts, wenn ungleich dann Exchange(x) sonst Durchschalten(-) s=22=l o l l o d=27=l l o l l R - x x - x E-63 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Omega-Netz (programmierbares Shuffle-Exchange-Netz) Omega-Netz Kollision, also diese beiden Verbindungen sind nicht gleichzeitig schaltbar! 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 Exchange-Schalter s=0=000 d=0=000 R= - - - s=4=1 0 0 d=3=0 1 1 R= x x x RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt E-64 Das Omega-Netz kann auch in umgekehrter Richtung betrieben werden dieses inverse Netz ist in analoger Weise eindeutig routbar, ebenfalls nicht universell Bidelta-Eigenschaft: Netz in eindeutiger Weise in beiden Richtungen routbar. Bidelta-Netze sind topologisch äquivalent Omega Banyan Butterfly Baseline Flip de-Bruijn E-65 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Bidelta-Netze RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Banyan (gespiegelt ergibt:Binäres n-cube Netzwerk) E-66 Butterfly 000 001 LSB Mögliche Implementierung: Demultiplexer mit Tri-State 010 011 100 101 110 oder Multiplexer 111 Zum Routing werden die Bits der Quelladresse und Zieladresse absteigend verglichen (vom MSB (most significant bit) zum LSB (least signifcant Bit)) , falls gleich, wird die Information in direkter Richtung weiter geschickt, ansonsten wird der andere Weg eingeschlagen Butterfly-Wege RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt MSB E-67 Butterfly (2), Beispiel Routing LSB 0 0 0 1 1 1 Quelladr. Zieladr. 2 2 0011 2 0111 1000 3 3 Kollision nicht gleichzeitig möglich 1101 3 Wege RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt MSB E-68 Butterfly (3) realisiert mit Exchange-Schaltern 0 0 0 0 1 1 1 1 2 2 3 3 2 3 2 3 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt E-69 3-dim. Benes Netzwerk Reihen 000 001 (r-1) - dimensionales Benes Netzwerk 010 011 100 101 (r-1) - dimensionales Benes Netzwerk 110 Das Benes Netzwerk kann sowohl die doppelte Verwendung einer Kante als auch die doppelte Verwendung eines Knotens vermeiden. Universelles Netz RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Ein konzeptioneller Nachteil bei Butterly Netzwerken ist die Gefahr von Hot Spots. Diese lassen sich jedoch mit einem Benes Netzwerk vermeiden. Das Benes Netzwerk besteht aus 2 spiegelsymmetrischen Butterfly Netzwerken und weist somit fast die doppelte Hardwarekomplexität im Vergleich zu einem Butterfly Netzwerk auf. E-70 111 0 1 2 3 4 5 6 Stufen realisierbar mit (n log2n –n/2 )Exchange-Schaltern, Stufenzahl=2log2n -1 http://www.it.irf.uni-dortmund.de/IT/Resource/prs/PRS_Slides_2004.ppt CLOS-Netz 2. Stufe m Crossbars (r x r) 3. Stufe r Crossbars (m x n) - von CLOS (1953) vorgeschlagen - benötigt weniger Schalter als Crossbar (n x n) - nichtblockierend, wenn m genügend groß gewählt wird. RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt 1. Stufe r Crossbars (n x m) E-71 Crossbar Bus Bidelta Netze Gleichzeitige Verbindungen n 1 <n Latenz (Distanz) 1 1 log2 n Logik n2 n TREIBER n (log2 n) MUX/DEMUX oder n/2 (log2 n) SCHALTER E-72 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Vergleich Dynamische Netze Bandbreiten und Latenz von schnellen Verbindungsnetzen theor. Bandbreite Gbit/s effektive Bandbreite ca. MB/s Latenz us Gigabit Ethernet 1 85 80 SCI (Scalable Coherent Interface) 1-8 82 3-15 Myrinet 2000 4 250-438 8-10 Inifiniband 2.5 * (1..12 Links) SDR *1 DDR*2 QDR*4 25012 000 1-3 Myrinet • Message Passing • Switch-basiert neuer Standard zur Kopplung von Knoten und Geräten RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt E-73 SCI = Scalable Coherent Interface, ANSI/IEEE 1596-1992. 64-bit globaler Adressraum (16-bit node ID, 48-bit local memory). Garantierter Datentransport durch paketbasiertes Handshake Protokoll. Schnittstellen mit zwei unidirektionalen Links die gleichzeitig arbeiten können. Unterstützt gemeinsamen Speicher und Nachrichtenaustausch. Definiert Cache-Kohärenzprotokoll. http://kbs.cs.tu-berlin.de/teaching/ws2002/cl/cc2.pdf E-74 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Scalable Coherent Interface Ergebnis zweier konkurrierender Systeme: Future I/O von Compaq, IBM und Hewlett-Packard und Next Generation I/O von Intel, Microsoft und Sun Microsystems De-facto Standard für Supercomputer Cluster bidirektionale serielle Links, 8B10B Codierung Síngle/Double/Quad-Data Rate, bis zu 12 Kanäle parallel, 2-96 GBit/s (250-12 000 MB/s) eff. Durchsatz Latenz: Chip (ca. 100-200 ns), über MPI (ca. 1 us) Operationen Send/Receive Messages between Queue Pairs RDMA = Remote Direct Memory Access RDMA Atomics (zur Synchronisation:Compare&Swap, Fetch&Add) E-75 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Infiniband Switches and Router http://www.oreillynet.com/pub/a/netw ork/2002/02/04/windows.html An Introduction to the InfiniBand Architecture by Odysseas Pentakalos, coauthor of Windows 2000 Performance Guide 02/04/2002 HCA=Host Channel Adapter TCA=Target Channel Adapter E-76 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Infiniband, Point-to-Point Verbindungen a b c d a1 b1 c1 d1 A B C D Gegeben: Gerichtetes Ringnetz mit 4 Knoten. Jeder Knoten enthält zwei Register. Zwischen zwei benachbarten Knoten gibt es 4 alternative synchrone Transporte: (z.B. von A nach B: ab oder ab1 oder a1b oder a1b1). Die Register a,b,c,d werden mit Werten vorbelegt (a=1, b=2, c=3, d=4). Die Register a1, b1,c1, d1 dienen als Hilfsregister. Gesucht: Steuerablauf als Verilog-Programm, der die Registerinhalte (a,b) und (c,d) miteinander vertauscht. Wieviel Schritte werden benötigt? E-77 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Kleines Verilog Netz-Beispiel: Synchron-paralleler Datenaustausch auf einem Ringnetz Steuerablauf B C a b c Datenwerte entsprechen verschiedenen Farben. D d a1 b1 c1 d1 a b c d a1 b1 c1 d1 a b c d a1 b1 c1 d1 a b c d a1 b1 c1 d1 1.) nach rechts schieben RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt A E-78 (Zwei Ergebnisse schon in B und D) 2. )a und c nach rechts unten schieben 3. ) b1 und d1 nach rechts oben schieben (Ergebnisse in A, B, C, D: Nachbarn sind vertauscht) // Ring Netz: a,b,c,d. --- 7.10.03 rh // vertauschen von a<->b und c<->d module ring(); reg clock; reg [7:0] a, b, c, d; //knoten reg [7:0] a1, b1, c1, d1; //hilfsregister in den knoten reg [1:0] state; reg stop; always @(posedge clock) begin case(state) 0: begin //stop=01 a <= 1; b <= 2; c <= 3; d <= 4; //init state<=1; end 1: begin // a = 1, b = 2, c = 3. d = 4; b<=a; c<=b; d<=c; a<=d; state<=2; end 2: begin b1<=a; d1<=c; state<=3; end 3: begin a<=d1; c<=b1; stop<=1; state<=0; end endcase end // --- Hardware-Initialisierung initial begin state=0; stop=0; end // ausgabe bei änderung von state always @(state) begin $display(" --- state=%H",state); $display("a =%H, b =%H, c =%H, d =%H",a,b,c,d); $display("a1=%H, b1=%H, c1=%H, d1=%H",a1,b1,c1,d1); end // --- Taktgenerator, Testumgebung --integer i; initial begin #0 clock=0; i=0; #5 while (i<20) begin #5 clock=!clock; i=i+1; //pos. flanke #5 clock=!clock; //neg. flanke if (stop) begin #5 $finish; end end end endmodule E-79 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt (Beispiel) Verilog-Programm --- state=0 a =xx, b =xx, c =xx, a1=xx, b1=xx, c1=xx, d =xx d1=xx Initialisierung --- state=1 a =01, b =02, c =03, a1=xx, b1=xx, c1=xx, d =04 d1=xx (a,b,c,d) zyklisch nach rechts --- state=2 a =04, b =01, c =02, a1=xx, b1=xx, c1=xx, d =03 d1=xx ab1, cd1 --- state=3 a =04, b =01, c =02, a1=xx, b1=04, c1=xx, d =03 d1=02 d1a, b1c --- state=0 a =02, b =01, c =04, a1=xx, b1=04, c1=xx, d =03 d1=02 E-80 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt (Beispiel) Ablauf, Verilog-Ausgabe RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt (Beispiel) Timing-Diagramm E-81 Statische und Dynamische Netze Leitungsvermittlung Paketvermittlung Nachrichten Pakete Phits Store-and Forward- Routing Wormhole Routing Virtual-Cut-Through Routing Netzmerkmale Ports, Durchmesser, mittl. Distanz, Verkehrsdichte, Fehlertoleranz Ring MC: Mesh Connected (Gitter) Illiac-Netz (Zeilen Wrap versetzt) Baum, Fat-Tree Modell CC: Hypercube, Barrel Shifter Crossbar Permutationsnetze Shuffle-Exchange Omega Butterfly CLOS Verilog-Beispiel Datentransport auf gerichtetem Ringnetz E-82 RA – SS 10, R. Hoffmann, Rechnerarchitektur, TU Darmstadt Zusammenfassung