Überblick zEinleitung yLit., Motivation, Geschichte, v.NeumannModell, VHDL zBefehlsschnittstelle zMikroarchitektur zSpeicherarchitektur zEin-/Ausgabe zMultiprozessorsysteme, ... Kap.6 Multiprozessorsysteme Einsatz der zusätzlich verfügbaren Chipfläche z Parallelität auf Bitebene: bis etwa 1985 y Kombinatorische Addierer und Multiplizierer, Multiplizierer etc. y → wachsende Wortbreite auf 64 Bit z Parallelität auf Instruktionsebene: 1985 bis heute y Pipelining der Instruktionsverarbeitung y Mehrere Funktionseinheiten (→ superskalare Prozessoren) bei mehr als 4 Funktionseinheiten verhindern Datenabhängigkeiten oft eine effiziente Ausnutzung z Integration von Caches und Hauptspeicher auf die Chipfläche: 1990 bis heute y Zur Verringerung der mittleren Zugriffszeiten y → DEC Alpha 21164: 77% der Fläche für Caches z Parallelität auf Prozessorebene: Perspektive Performanz von Rechnern lässt sich durch Parallelverarbeitung steigern. z Parallelverarbeitung erfolgt bei y Verteilten Systemen Diese bestehen aus mehreren Prozessoren ohne gemeinsamen Speicher. Jeder Prozessor hat einen eigenen Speicher (local memory). Die Prozessoren tauschen Daten durch Nachrichten aus. Nachteil: Evtl. hoher Aufwand für Nachrichtenaustausch. y Parallelrechnern Diese bestehen ebenfalls aus mehreren Prozessoren und haben einen gemeinsamen Speicher (shared memory). Die Kommunikation erfolgt über den gemeinsamen Speicher. Nachteil: Evtl. Performanz-Probleme, wenn viele Prozessoren gleichzeitig auf den Speicher zugreifen wollen. Architektur von verteilten/parallelen Systemen z Systeme mit Verbindungsnetzwerk und lokalem Speicher M1 M2 M3 M4 Cache Cache Cache Cache P1 P2 P3 P4 Verbindungsnetzwerk y Zugriff auf fremden lokalen Speicher nicht möglich y Kommunikation durch Austausch von Nachrichten y gute physikalische Skalierbarkeit Architektur von verteilten/parallelen Systemen ff z Symmetrische Multiprozessoren (SMP) y gemeinsamer nichtverteilter Speicher P1 P2 P3 P4 Cache Cache Cache Cache y y y y Speicher meist busbasiert mit physikalisch gemeinsamem Speicher Reduktion der Speicherzugriffslatenz durch lokale Caches Problem: Problem Cache-Kohärenz Beispiele: Beispiele SGI Challenge, Sun Enterprise Architektur von verteilten/parallelen Systemen ff z Verteilter gemeinsamer Speicher y lokale Speichermodule y gemeinsamer Adressraum P1 P2 M1 P3 M2 Verbindungsnetzwerk P4 M3 M4 Beispiel: Beispiel Cray T3D Architektur von verteilten/parallelen Systemen ff z Verteilter gemeinsamer Speicher mit lokalem Cache y lokale Speichermodule y gemeinsamer Adressraum y Zugriff der Prozessoren über prozessor-eigenen Cache P1 P2 P3 P4 Cache Cache Cache Cache M1 M2 Verbindungsnetzwerk M3 M4 Beispiele: Beispiele HP Convex SPP Unterteilung von paralleln/verteilten Systemen nach dem verwendeten Speichermodell: y verteilter Speicher, getrennte Adressräume y verteilter Speicher, gemeinsamer Adressraum y Nichtverteilter Speicher, gemeinsamer Adressraum nach der Homogenität der Prozessoren y homogene Parallelrechner: Parallelrechner alle Prozessoren sind gleich y heterogene Parallelrechner: Parallelrechner Prozessoren dürfen sich hardwaremäßig unterscheiden Nach der Hierarchie zwischen den Prozessoren y symmetrische Parallelrechner: Parallelrechner die Prozessoren sind bzgl. ihrer Rolle im System untereinander austauschbar y nichtsymmetrische Parallelrechner: Parallelrechner es gibt Masters und Slaves Nach der Eigenständigkeit der Prozessoren y lose gekoppelte Parallelrechner: Parallelrechner Netzwerk von eigenständigen Rechnern y eng gekoppelte Parallelrechner: Parallelrechner physikalisch ein Rechner Bsp.: Flynn's Schema ´66 z Einteilung von Rechnern in Klassen: y SISD (Single Instruction stream, Single Data stream) → Personal Computer y SIMD (Single Instruction stream, Multiple Data streams) → Vektorrechner, wie Illiac IV (1972, 64 Knoten), CM-2 (1987, 65536 Knoten) Die gleiche Instruktion wird parallel auf einen Vektor von Daten angewendet. y MISD (Multiple Instruction streams, Single Data stream) Mehrere Anweisungen parallel. y MIMD (Multiple Instruction streams, Multiple Data streams) → INMOS Transputer, CONVEX SPP, CRAY T3D/T3E, IBM SP2 Verbindungsstrukturen z Der Kommunikationsaufwand zwischen den Prozessoren ist einer der Hauptpunkte für die Leistung des parallelen/verteilten Systems. ⇒ nicht jedes Problem ist für Parallelisierung geeignet. z Verschiedene Kommunikationsstrukturen unterscheiden sich hinsichtlich ihrer Kosten und ihrer Leistung. Beispiel: Vollständiger Verbindungsgraph Modellierung von Verbindungen z Modellierung: Die Topologie eines Parallelrechners wird durch einen abstrakten Graphen G=(V,E) dargestellt, mit y V = { 1, ... , n } Menge der Knoten, d.h. der Prozessoren y E ⊆ { {a,b}; a,b ∈ V }, die Menge der Kanten, d.h. der Verbindungen z Charakteristika einer Verbindungsstruktur y Durchmesser(G) = max v,w∈V { Länge des kürzesten Pfades von v nach w} y Grad(G) = max v∈V | { w ∈ V; {v,w} ∈ E } | y Anzahl der physikalischen Verbindungen (G) = | E | Verbindungsstrukturen z Vollständiger Verbindungsgraph Zu teuer wegen dem großen Fanout n n n Durchmesser = 1 Grad = n-1 |Verbindungen| = n(n-1)/2, keine „Kollisionen“ Verbindungsstrukturen ff z Stern n n n Durchmesser = 2 Grad = n-1 |Verbindungen| = n-1, Verbindungsstrukturen ff z Bus Topologie versagt bei den heutigen Technologien bei großem Datentransfer zwischen den Prozessoren n n Ein Bus lässt sich als Stern modellieren, wobei der zentrale Knoten aber kein Prozessor ist, sondern der zentrale Bus. Gleiches „Flaschenhalsproblem“ wie bei Stern. Beispiel für Bustopologie: Ethernet Charakteristika z z z z z Bus-Topologie 10 - 100 Mbit / Sekunde Paket-Versand mit Paketgrößen von 64-1518 Bytes Nicht abhörsicher: alle hören mit ! (Lokales) Rechnernetz über eine Bridge mit der Außenwelt verbunden, die die Nachrichten filtert und verstärkt Übertragungsvorgang z Nachrichten werden in Pakete fester Länge zerteilt. Jedes Paket enthält Headerinformation mit Zieladresse und Sequenznummer z Jeder Rechner horcht am Bus und empfängt die Pakete, die seine Adresse tragen z Kollisionen von mehreren Sendern werden erkannt. z Falls Kollision, dann später erneuter Sendeversuch Verbindungsstrukturen ff z Ring Beispiel für Ring: Token-Ring Es kreist ein sogenanntes Token (spezielles Paket). Ein Rechner darf nur dann senden, wenn er das Token besitzt. n n n Durchmesser = n/2 Grad = 2 |Verbindungen| = n, Beispiel für Ringtopologie: CDDI/FDDIRing [Copper / Fiber Distributed Data Interconnect] Charakteristika z Ring-Topologie z Besteht aus zwei gegenläufigen Ringen → Fehlertolerantes Netz z ... ansonsten wie beim Token-Ring CDDI/FDDI-Ring ist fehlertolerant ! Verbindungsstrukturen ff z Stern HUB n n n Durchmesser = 2 Grad = 1 |Verbindungen| = n, Verbindungsstrukturen ff z MESH (torusähnliches Gitter) Typischer Vertreter war das Transputer-Netz von INMOS n n n Durchmesser = n1/2 Grad = 4 |Verbindungen| = 2n Verbindungsstrukturen ff z Hypercube (d-dimensionaler Würfel) Nicht verwendbar, da Grad zu hoch n n n Durchmesser = log n Grad = log n |Verbindungen| = (n log n) / 2, in der Regel keine Wartezeiten Verbindungsstrukturen ff z Cube Connected Cycle (CCC) n n n Durchmesser ≈ 2 log n Grad = 3 |Verbindungen| = 3n / 2, in der Regel keine Wartezeiten Verbindungsstrukturen ff z Crossbar Switch meist verwendete Struktur bei Parallelrechnern mit gemeinsamen "nichtverteilten" Speicher S0 S1 S2 S3 S4 S5 S6 S7 CPU 0 CPU 1 CPU 2 CPU 3 CPU 4 CPU 5 CPU 6 CPU 7 keine Verbindung Nachteil: n⋅m Crosspoints Verbindung entspricht Verbindungsstrukturen ff z Omega Netzwerk (als Alternative zum Crossbar Scwitch) P R O Z E S S O R E N 000 1A 2A 3A 001 000 001 010 010 1B 2B 3B 011 011 100 100 1C 2C 3C 101 101 110 110 111 1D 2D 3D S P E I C H E R 111 ... besitzt nur n/2 log n Schalter Verbindungsstrukturen ff z Omega Netzwerk y der obere Ausgang eines Schalters ist der 0-Ausgang y der untere Ausgang eines Schalters ist der 1-Ausgang y ein Schalter der Stufe i schaltet gemäß dem i-ten Bit der Zieladresse P R O Z E S S O R E N 000 1A 2A 3A 000 001 001 010 010 1B 2B 3B 011 011 100 100 1C 2C 3C 101 101 110 110 111 1D 2D 3D 111 S P E I C H E R Verbindungsstrukturen ff z Omega Netzwerk y nicht jede Kommunikation ist gleichzeitig möglich, auch wenn alle Zieladressen paarweise verschieden sind (blocking network) network P R O Z E S S O R E N 000 1A 2A 3A 000 001 001 010 010 1B 2B 3B 011 011 100 100 1C 2C 3C 101 101 110 110 111 1D 2D 3D 111 S P E I C H E R Local and Wide Area Networks Token Ring 4 Mbit/s Subnet (Telekom) B-ISDN 34 Mbit/s 155 Mbit/s 4 Mbit/s 2 Mbit/s Token Ring Token Ring 10 Mbps 4Mbps Ethernet z Lokale Netze (LAN): LAN Netze mit Ausdehnung von wenigen 100 Metern zur Verbindung der Rechner einer Abteilung oder einer kleineren Firma z Weitverkehrsnetze (WAN): WAN zur weltweiten Verbindung über Datennetze der Post bzw. private / kommerzielle Satellitenverbindungen Vermittlungsarten z Paket-vermittelnde Vermittlung y Nachricht wird in ein oder mehrere Pakete verpackt y Jedes der Pakete enthält die Adresse des Empfängers y Es wird kein Pfad vom Sender zum Empfänger freigeschaltet y Das Paket wird in Abhängigkeit der Empfängeradresse immer nur zu einem direkten Nachbarn geschickt. z Leitungsvermittelnde Vermittlung y Es wird im Netzwerk ein Pfad vom Sender zum Empfänger geschaltet, über den alle Nachrichten geschickt werden (Bsp: Telefonverbindung) Leitungsvermittelnde Vermittlung Sender11 Sender Empfänger11 Empfänger Sender22 Sender Empfänger22 Empfänger Sender33 Sender Empfänger33 Empfänger Ú Schnelle Übertragung großer Datenmengen Ø Geschalteter Pfad blockiert andere Verbindungen Paket-vermittelnde Vermittlung Sender11 Sender Empfänger11 Empfänger Sender22 Sender Empfänger22 Empfänger Sender33 Sender Empfänger33 Empfänger Ú Keine Verbindung muss lange warten Ø Unterbrechungen während einer Übertragung möglich Kommunikationskontrolle z deterministische Kontrolle der Weg eines jeden Pakets ist reproduzierbar z randomisierte Kontrolle an bestimmten Stellen des Algorithmus werden zufällige Entscheidungen getroffen Beispiel: Valiant-Paradigma u Route zu einer zufälligen Zwischenadresse u Route dann erst zum Ziel