31.01.2014 Aufrufe

Überblick - Uni Bremen

Überblick - Uni Bremen

Überblick - Uni Bremen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Überblick</strong><br />

zEinleitung<br />

yLit., Motivation, Geschichte, v.Neumann-<br />

Modell, VHDL<br />

zBefehlsschnittstelle<br />

zMikroarchitektur<br />

zSpeicherarchitektur<br />

zEin-/Ausgabe<br />

zMultiprozessorsysteme, ...


Kap.6<br />

Multiprozessorsysteme


Einsatz der zusätzlich verfügbaren<br />

Chipfläche<br />

z Parallelität auf Bitebene: bis etwa 1985<br />

y Kombinatorische Addierer und Multiplizierer, etc.<br />

y → wachsende Wortbreite auf 64 Bit<br />

z Parallelität auf Instruktionsebene: 1985 bis heute<br />

y Pipelining der Instruktionsverarbeitung<br />

y Mehrere Funktionseinheiten (→ superskalare Prozessoren)<br />

bei mehr als 4 Funktionseinheiten verhindern Datenabhängigkeiten<br />

oft eine effiziente Ausnutzung<br />

z Integration von Caches und Hauptspeicher auf die Chipfläche: 1990<br />

bis heute<br />

y Zur Verringerung der mittleren Zugriffszeiten<br />

y → DEC Alpha 21164: 77% der Fläche für Caches<br />

z Parallelität auf Prozessorebene: Perspektive


Performanz von Rechnern lässt sich durch<br />

Parallelverarbeitung<br />

steigern.<br />

z Parallelverarbeitung erfolgt bei<br />

y Verteilten Systemen<br />

Diese bestehen aus mehreren Prozessoren ohne gemeinsamen<br />

Speicher. Jeder Prozessor hat einen eigenen Speicher (local memory).<br />

Die Prozessoren tauschen Daten durch Nachrichten aus.<br />

Nachteil: Evtl. hoher Aufwand für Nachrichtenaustausch.<br />

y Parallelrechnern<br />

Diese bestehen ebenfalls aus mehreren Prozessoren und haben einen<br />

gemeinsamen Speicher (shared memory). Die Kommunikation erfolgt<br />

über den gemeinsamen Speicher.<br />

Nachteil: Evtl. Performanz-Probleme, wenn viele Prozessoren<br />

gleichzeitig auf den Speicher zugreifen wollen.


Architektur von<br />

verteilten/parallelen Systemen<br />

z Systeme mit Verbindungsnetzwerk und lokalem<br />

Speicher<br />

M1<br />

M2<br />

M3<br />

M4<br />

Cache<br />

Cache<br />

Cache<br />

Cache<br />

P1<br />

P2<br />

P3<br />

P4<br />

Verbindungsnetzwerk<br />

y Zugriff auf fremden lokalen Speicher nicht möglich<br />

y Kommunikation durch Austausch von Nachrichten<br />

y gute physikalische Skalierbarkeit


Architektur von<br />

verteilten/parallelen Systemen ff<br />

z Symmetrische Multiprozessoren (SMP)<br />

y gemeinsamer nichtverteilter Speicher<br />

P1<br />

P2<br />

P3<br />

P4<br />

Cache<br />

Cache<br />

Cache<br />

Cache<br />

Speicher<br />

y meist busbasiert mit physikalisch gemeinsamem Speicher<br />

y Reduktion der Speicherzugriffslatenz durch lokale Caches<br />

y Problem: Cache-Kohärenz<br />

y Beispiele: SGI Challenge, Sun Enterprise


Architektur von<br />

verteilten/parallelen Systemen ff<br />

z Verteilter gemeinsamer Speicher<br />

y lokale Speichermodule<br />

y gemeinsamer Adressraum<br />

P1<br />

P2<br />

P3<br />

P4<br />

M1<br />

M2<br />

M3<br />

M4<br />

Verbindungsnetzwerk<br />

Beispiel:<br />

Cray T3D


Architektur von<br />

verteilten/parallelen Systemen ff<br />

z Verteilter gemeinsamer Speicher mit lokalem Cache<br />

y lokale Speichermodule<br />

y gemeinsamer Adressraum<br />

y Zugriff der Prozessoren über prozessor-eigenen Cache<br />

P1<br />

P2<br />

P3<br />

P4<br />

Cache<br />

Cache<br />

Cache<br />

Cache<br />

M1<br />

M2<br />

M3<br />

M4<br />

Verbindungsnetzwerk<br />

Beispiele:<br />

HP Convex SPP


Unterteilung von<br />

paralleln/verteilten Systemen<br />

nach dem verwendeten Speichermodell:<br />

y verteilter Speicher, getrennte Adressräume<br />

y verteilter Speicher, gemeinsamer Adressraum<br />

y Nichtverteilter Speicher, gemeinsamer Adressraum<br />

nach der Homogenität der Prozessoren<br />

y homogene Parallelrechner: alle Prozessoren sind gleich<br />

y heterogene Parallelrechner: Prozessoren dürfen sich<br />

hardwaremäßig unterscheiden<br />

Nach der Hierarchie zwischen den Prozessoren<br />

y symmetrische Parallelrechner: die Prozessoren sind bzgl. ihrer<br />

Rolle im System untereinander austauschbar<br />

y nichtsymmetrische Parallelrechner: es gibt Masters und Slaves<br />

Nach der Eigenständigkeit der Prozessoren<br />

y lose gekoppelte Parallelrechner: Netzwerk von eigenständigen<br />

Rechnern<br />

y eng gekoppelte Parallelrechner: physikalisch ein Rechner


Bsp.:<br />

Flynn's Schema ´66<br />

z Einteilung von Rechnern in Klassen:<br />

y SISD (Single Instruction stream, Single Data stream)<br />

→ Personal Computer<br />

y SIMD (Single Instruction stream, Multiple Data streams)<br />

→ Vektorrechner, wie Illiac IV (1972, 64 Knoten), CM-2 (1987, 65536<br />

Knoten) Die gleiche Instruktion wird parallel auf einen Vektor von<br />

Daten angewendet.<br />

y MISD (Multiple Instruction streams, Single Data stream)<br />

Mehrere Anweisungen parallel.<br />

y MIMD (Multiple Instruction streams, Multiple Data streams)<br />

→ INMOS Transputer, CONVEX SPP, CRAY T3D/T3E, IBM SP2


Verbindungsstrukturen<br />

z Der Kommunikationsaufwand zwischen den Prozessoren ist<br />

einer der Hauptpunkte für die Leistung des parallelen/verteilten<br />

Systems.<br />

⇒ nicht jedes Problem ist für Parallelisierung geeignet.<br />

z Verschiedene Kommunikationsstrukturen unterscheiden sich<br />

hinsichtlich ihrer Kosten und ihrer Leistung.<br />

Beispiel:<br />

Vollständiger<br />

Verbindungsgraph


Modellierung von Verbindungen<br />

z Modellierung: Die Topologie eines Parallelrechners wird durch einen<br />

abstrakten Graphen G=(V,E) dargestellt, mit<br />

y V = { 1, ... , n } Menge der Knoten, d.h. der Prozessoren<br />

y E ⊆ { {a,b}; a,b ∈ V }, die Menge der Kanten, d.h. der Verbindungen<br />

z Charakteristika einer Verbindungsstruktur<br />

y Durchmesser(G) = max v,w∈V<br />

{ Länge des kürzesten Pfades von v nach<br />

w}<br />

y Grad(G) = max v∈V<br />

| { w ∈ V; {v,w} ∈ E } |<br />

y Anzahl der physikalischen Verbindungen (G) = | E |


Verbindungsstrukturen<br />

z Vollständiger Verbindungsgraph<br />

Zu teuer wegen dem großen Fanout<br />

• Durchmesser = 1<br />

• Grad = n-1<br />

• |Verbindungen| = n(n-1)/2, keine „Kollisionen“


Verbindungsstrukturen ff<br />

z Stern<br />

• Durchmesser = 2<br />

• Grad = n-1<br />

• |Verbindungen| = n-1,


Verbindungsstrukturen ff<br />

z Bus<br />

Topologie versagt bei den heutigen Technologien bei<br />

großem Datentransfer zwischen den Prozessoren<br />

• Ein Bus lässt sich als Stern modellieren, wobei der zentrale Knoten<br />

aber kein Prozessor ist, sondern der zentrale Bus.<br />

• Gleiches „Flaschenhalsproblem“ wie bei Stern.


Beispiel für Bustopologie: Ethernet<br />

Charakteristika<br />

z Bus-Topologie<br />

z 10 - 100 Mbit / Sekunde<br />

z Paket-Versand mit Paketgrößen von 64-1518 Bytes<br />

z Nicht abhörsicher: alle hören mit !<br />

z (Lokales) Rechnernetz über eine Bridge mit der Außenwelt<br />

verbunden, die die Nachrichten filtert und verstärkt<br />

Übertragungsvorgang<br />

z Nachrichten werden in Pakete fester Länge zerteilt. Jedes Paket<br />

enthält Headerinformation mit Zieladresse und Sequenznummer<br />

z Jeder Rechner horcht am Bus und empfängt die Pakete, die seine<br />

Adresse tragen<br />

z Kollisionen von mehreren Sendern werden erkannt.


Verbindungsstrukturen ff<br />

z Ring<br />

• Durchmesser = n/2<br />

• Grad = 2<br />

• |Verbindungen| = n,<br />

Beispiel für Ring: Token-Ring<br />

Es kreist ein sogenanntes Token<br />

(spezielles Paket).<br />

Ein Rechner darf nur dann senden, wenn<br />

er das Token besitzt.


Beispiel für Ringtopologie: CDDI/FDDI-<br />

Ring<br />

[Copper / Fiber Distributed Data Interconnect]<br />

Charakteristika<br />

z Ring-Topologie<br />

z Besteht aus zwei gegenläufigen Ringen<br />

→ Fehlertolerantes Netz<br />

z ... ansonsten wie beim Token-Ring


CDDI/FDDI-Ring ist fehlertolerant !


Verbindungsstrukturen ff<br />

z Stern<br />

HUB<br />

• Durchmesser = 2<br />

• Grad = 1<br />

• |Verbindungen| = n,


Verbindungsstrukturen ff<br />

z MESH (torusähnliches Gitter)<br />

Typischer Vertreter war das Transputer-Netz von INMOS<br />

• Durchmesser = n 1/2<br />

• Grad = 4<br />

• |Verbindungen| = 2n


Verbindungsstrukturen ff<br />

z Hypercube (d-dimensionaler Würfel)<br />

Nicht verwendbar, da Grad zu hoch<br />

• Durchmesser = log n<br />

• Grad = log n<br />

• |Verbindungen| = (n log n) / 2, in der Regel keine Wartezeiten


Verbindungsstrukturen ff<br />

z Cube Connected Cycle (CCC)<br />

• Durchmesser ≈ 2 log n<br />

• Grad = 3<br />

• |Verbindungen| = 3n / 2, in der Regel keine Wartezeiten


Verbindungsstrukturen ff<br />

z Crossbar Switch<br />

meist verwendete Struktur bei<br />

Parallelrechnern mit gemeinsamen<br />

"nichtverteilten" Speicher<br />

CPU 0<br />

CPU 1<br />

CPU 2<br />

CPU 3<br />

CPU 4<br />

CPU 5<br />

CPU 6<br />

CPU 7<br />

S0 S1 S2 S3 S4 S5 S6 S7<br />

keine<br />

Verbindung<br />

Verbindung<br />

Nachteil: n⋅m Crosspoints<br />

entspricht


Verbindungsstrukturen ff<br />

z Omega Netzwerk (als Alternative zum Crossbar Scwitch)<br />

P<br />

R<br />

O<br />

Z<br />

E<br />

S<br />

S<br />

O<br />

R<br />

E<br />

N<br />

000<br />

001<br />

010<br />

011<br />

100<br />

101<br />

110<br />

111<br />

1A<br />

1B<br />

1C<br />

1D<br />

2A<br />

2B<br />

2C<br />

2D<br />

3A<br />

3B<br />

3C<br />

3D<br />

000<br />

001<br />

010<br />

011<br />

100<br />

101<br />

110<br />

111<br />

S<br />

P<br />

E<br />

I<br />

C<br />

H<br />

E<br />

R<br />

... besitzt nur n/2 log n Schalter


Verbindungsstrukturen ff<br />

z Omega Netzwerk<br />

y der obere Ausgang eines Schalters ist der 0-Ausgang<br />

y der untere Ausgang eines Schalters ist der 1-Ausgang<br />

y ein Schalter der Stufe i schaltet gemäß dem i-ten Bit der<br />

Zieladresse<br />

P<br />

R<br />

O<br />

Z<br />

E<br />

S<br />

S<br />

O<br />

R<br />

E<br />

N<br />

000<br />

001<br />

010<br />

011<br />

100<br />

101<br />

110<br />

111<br />

1A<br />

1B<br />

1C<br />

1D<br />

2A<br />

2B<br />

2C<br />

2D<br />

3A<br />

3B<br />

3C<br />

3D<br />

000<br />

001<br />

010<br />

011<br />

100<br />

101<br />

110<br />

111<br />

S<br />

P<br />

E<br />

I<br />

C<br />

H<br />

E<br />

R


Verbindungsstrukturen ff<br />

z Omega Netzwerk<br />

y nicht jede Kommunikation ist gleichzeitig möglich, auch wenn alle<br />

Zieladressen paarweise verschieden sind (blocking<br />

network)<br />

P<br />

R<br />

O<br />

Z<br />

E<br />

S<br />

S<br />

O<br />

R<br />

E<br />

N<br />

000<br />

001<br />

010<br />

011<br />

100<br />

101<br />

110<br />

111<br />

1A<br />

1B<br />

1C<br />

1D<br />

2A<br />

2B<br />

2C<br />

2D<br />

3A<br />

3B<br />

3C<br />

3D<br />

000<br />

001<br />

010<br />

011<br />

100<br />

101<br />

110<br />

111<br />

S<br />

P<br />

E<br />

I<br />

C<br />

H<br />

E<br />

R


Local and Wide Area Networks<br />

4 Mbit/s<br />

Token Ring<br />

4 Mbit/s<br />

Subnet<br />

(Telekom)<br />

2 Mbit/s<br />

B-ISDN<br />

34 Mbit/s<br />

155 Mbit/s<br />

Token Ring<br />

Token Ring<br />

10 Mbps 4Mbps<br />

Ethernet<br />

z Lokale Netze (LAN): Netze mit Ausdehnung von wenigen 100 Metern zur<br />

Verbindung der Rechner einer Abteilung oder einer kleineren Firma<br />

z Weitverkehrsnetze (WAN): zur weltweiten Verbindung über Datennetze<br />

der Post bzw. private / kommerzielle Satellitenverbindungen


Vermittlungsarten<br />

z Paket-vermittelnde Vermittlung<br />

y Nachricht wird in ein oder mehrere Pakete verpackt<br />

y Jedes der Pakete enthält die Adresse des Empfängers<br />

y Es wird kein Pfad vom Sender zum Empfänger freigeschaltet<br />

y Das Paket wird in Abhängigkeit der Empfängeradresse immer nur zu<br />

einem direkten Nachbarn geschickt.<br />

z Leitungsvermittelnde Vermittlung<br />

Leitungsvermittelnde Vermittlung<br />

y Es wird im Netzwerk ein Pfad vom Sender zum Empfänger geschaltet,<br />

über den alle Nachrichten geschickt werden (Bsp: Telefonverbindung)


Leitungsvermittelnde Vermittlung<br />

Sender 1<br />

Sender 1<br />

Empfänger 1<br />

Empfänger 1<br />

Sender 2<br />

Sender 2<br />

Empfänger 2<br />

Empfänger 2<br />

Sender 3<br />

Sender 3<br />

Empfänger 3<br />

Empfänger 3<br />

Ú Schnelle Übertragung großer Datenmengen<br />

‣ Geschalteter Pfad blockiert andere Verbindungen


Paket-vermittelnde Vermittlung<br />

Sender 1<br />

Sender 1<br />

Empfänger 1<br />

Empfänger 1<br />

Sender 2<br />

Sender 2<br />

Empfänger 2<br />

Empfänger 2<br />

Sender 3<br />

Sender 3<br />

Empfänger 3<br />

Empfänger 3<br />

Ú Keine Verbindung muss lange warten<br />

‣ Unterbrechungen während einer Übertragung möglich


Kommunikationskontrolle<br />

z<br />

z<br />

deterministische Kontrolle<br />

der Weg eines jeden Pakets ist reproduzierbar<br />

randomisierte Kontrolle<br />

an bestimmten Stellen des Algorithmus werden zufällige<br />

Entscheidungen getroffen<br />

Beispiel: Valiant-Paradigma<br />

u Route zu einer zufälligen Zwischenadresse<br />

u Route dann erst zum Ziel

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!