Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

14 Parallele Rechner 14.1 Parallele Rechner - Einführung 14.2 Leistung

Ähnliche Präsentationen


Präsentation zum Thema: "14 Parallele Rechner 14.1 Parallele Rechner - Einführung 14.2 Leistung"—  Präsentation transkript:

1 14 Parallele Rechner 14.1 Parallele Rechner - Einführung 14.2 Leistung
14.3 Kommuniklationsarchitektur 14.4 Typen paralleler Architekturen

2 (Echter) Parallelismus
Bisher meist Pseudo-Parallelismus von nebenläufigen Systemen Jetzt: Echter Parallelismus – „Schnelles Lösen großer Probleme durch eine Menge kooperierender und kommunizierender Rechenelemente (RE) (processing units)“ (Almasi/Gottlieb) Ziele Leistungssteigerung, Reduktion von Wartungsaufwand oder Gewicht durch die Integration von Funktionen bei eingebetteten Systemen, Steigerung der Ausfallsicherheit durch Redundanz. Wir konzentrieren uns erst nur auf den ersten Aspekt, später auf den zweiten. RW-Systemarchitektur Kap. 13

3 Paralleles Rechnen erwartete Leistungssteigerung für Anwendungen:
gleichzeitiges Arbeiten an verschiedenen Teilen des Problemraums, Koordination zur Sicherung der Konsistenz, Kommunikation zum Informationsaustausch. Neue Aufgaben: Koordination – SW-Aufgabe Kommunikation - Architekturunterstützung Synchronisation P1 P2 Kommunikation RW-Systemarchitektur Kap. 13

4 Parallele Rechner Schnelles Lösen großer Probleme durch eine Menge kooperierender und kommunizierender Rechenelemente. "... eine Menge von Rechenelementen..." Wie viele? Wie mächtig ist jeder? Nur Prozessoren oder komplette Rechner? Skalierbarkeit? Kosten? "... kommunizierende ..." Wie kommunizieren Rechenelemente? (z.B. über gemeinsamen Speicher oder durch Nachrichtenaustausch) Architektur des Verbindungsnetzwerks? (Bus, Kreuzschienenschalter (crossbar), mehrstufiges Netzwerk, ...) Bewertungskriterien : Kosten, Latenz, Durchsatz, Skalierbarkeit, Fehlerttoleranz RW-Systemarchitektur Kap. 13

5 "... kooperierender ..." wichtige Konzepte: Synchronisation, Granularität und Autonomie Synchronisation sichert Konsistenz Primitive Operationen (test&set, fetch&add, ...); Granularität legt die Größe von Teilaufgaben fest. kleinere Granularität  größerer Parallelismus  mehr Kommunikation  größerer Overhead. Granularitäten Zahl von Instruktionen Parallelismus Programmniveau 10^ Befehle Taskniveau ^3-10^6 Befehle Task-Parallelismus Schleifenniveau Befehle SW-Pipelining Anweisungsniveau Befehle Befehlsanordnung Autonomie: SIMD- oder MIMD-Rechner MIMD-Rechner sind allgemeiner einsetzbar, aber der Overhead kann bei häufiger Synchronisation groß sein. RW-Systemarchitektur Kap. 13

6 "Schnelles Lösen großer Probleme ..."
Universalrechner gegenüber Spezialrechner Jeder Rechner kann irgendetwas effizient lösen! Welche Anwendungen lassen sich parallelisieren: Leicht parallelisierbare Anwendungen (embarrassingly parallel applications) Viele wissenschaftliche Anwendungen mit hohem Datenparallelismus mittelleicht parallelisierbare Anwendungen ingenieurwiss. Anwendungen (finite-Elemente-Methoden, VLSI-CAD) schlecht parallelisierbare Anwendungen MS Word, Übersetzer usw. RW-Systemarchitektur Kap. 13

7 14.2 Leistung Wichtige Metriken:
Latenz – Ausführungszeit für eine Operation, z.B. einen Block in den Cache zu laden, eine Nachricht vom Sender zum Empfänger zu schicken, … Leistung – Zahl der Operationen pro Zeiteinheit, Kosten – Beitrag zur Ausführungszeit von Programmen. Kein einfacher Zusammenhang wg. Parallelismus! Auf Rechner ohne Parallelismus: Leistung = 1/ Latenz Kosten eines Programms = Latenz x Zahl der ausgeführten Operationen RW-Systemarchitektur Kap. 13

8 Beispiel Architekturkomponente führt Operation in 100ns aus
Leistung: 10 Mops Interne Pipelinetiefe 10 => höchste Leistung 100 Mops Tatsächliche Leistung hängt vom Füllgrad der Pipeline ab, insbesondere von Abhängigkeiten Annahme: Anwendung führt 100 M Operationen aus. Kosten? #Operation * Operationslatenz ergibt 10s (obere Schranke) #Operation / Höchstleistung ergibt 1s (untere Schranke) nimmt vollständige Überlappung aller Latenzen an Wenn die Anwendung 50ns nützliche Arbeit erledigen kann, bevor sie auf das Ergebnis einer Operation warten muss, sind die Kosten der Operation die anderen 50ns der Latenz. RW-Systemarchitektur Kap. 13

9 Kommunikation (lineares Modell)
Transferzeit (n) = T0 + n/B für Daten der Größe n, T0 ist die Einrichtezeit (setup time), B die Transferrate, die Zahl der übermittelten Datenelemente pro Zeiteinheit. Bei gemeinsamem Speicher: Einrichtezeit = Speicherzugriffszeit Bei Rechner mit Nachrichtenaustausch: Einrichtezeit = Zeit, nach der das erste Bit beim Empfänger ankommt. Bei Transfers über den Bus beinhaltet sie die Zeit für alle Aktionen, bis der Transfer beginnt, Arbitrierung usw. Mit der Größe des Transfers geht die Transferzeit asymptotisch gegen die Transferrate B. RW-Systemarchitektur Kap. 13

10 Kommunikation über ein Verbindungsnetzwerk
Kommunikationszeit (n) =Initiierungsaufwand + Belegungszeit + Netzwerkverzögerung Initiierungsaufwand = die Zeit, die der Sender mit der Initiierung der Kommunikation beschäftigt ist; evtl. konstant oder Funktion von n. Belegungszeit = Zeit, für welche die langsamste Komponente auf dem Kommunikationspfad belegt und damit für andere Transfers gesperrt ist. Begrenzt die Häufigkeit von Transfers. Netzwerkverzögerung = Zeit, ein Bit durch das Netzwerk zu leiten + weitere Zeiten, bis Empfänger die geschickten Daten nutzen kann. Wenn Kommunikation in Pipeline-Form passiert, müssen alle drei Größen berücksichtigt werden. RW-Systemarchitektur Kap. 13

11 Kommunikations-Kosten-Modell
Etwas differenzierter: Komm.Zeit pro Nachricht = Overhead + Assist-Belegungszeit+ Netzwerkverzögerung+ Größe/Bandbreite + Contention = ov + oc + l + n/B + Tc Jede Komponente auf dem Übermittlungsweg hat Belegung und Verzögerung Gesamtverzögerung ist die Summe der Verzögerungen Gesamtbelegungszeit (1/Bandbreite) ist Maximum der Belegungszeiten Komm.Kosten = Frequenz * (Komm.Zeit - Überlappung) RW-Systemarchitektur Kap. 13

12 14.3 Kommunikations-Architektur
Schnittstelle ähnlich der ISA: Abstraktion für Programmierer Ziele sind: breite Anwendbarkeit, Programmierbarkeit Skalierbarkeit geringe Kosten Kommunikationsarchitektur Operationen für Kommunikation und Synchronisation, Datentypen Organisation, Protokolle usw. RW-Systemarchitektur Kap. 13

13 Schichten in parallelen Rechnern
VLSI/CAD Datenbanken Wissenschaftl. Rechnen Parallele Anwendungen Mehrfach- Programmbetrieb Gemein. Nachrichten- Daten- Pr ogrammiermodelle Adressraum austausch parallel Übersetzung Kommunikations-Abstraktion oder Bibiothek Nutzer/System-Schnittstelle BS-Unterstützung Har dwar e/Softwar e Schnittstelle Kommunikations-Hardware Physikalisches Kommunikations-Medium RW-Systemarchitektur Kap. 13

14 Entwurfsfragen Benennung: Latenz: Bandbreite: Synchronisation:
Wie werden kommunizierte Daten benannt? Latenz: Wie hoch ist die Latenz für geschützte Kommunikation? Bandbreite: Wie viele Daten können pro Zeiteinheit kommuniziert werden? Synchronisation: Wie können sich Produzenten und Konsumenten von Daten synchronisieren? Knoten-Granularität: Wie teilt man die Ressourcen gut auf? Zahl und Leistung der Prozessoren, Aufteilung des Speichers usw. RW-Systemarchitektur Kap. 13

15 14.4 Typen paralleler Architekturen
Gemeinsamer Speicher Nachrichtenaustausch Datenparallel Datenfluss Systolische Felder Waiting Matching Instruction Fetch Execute Form Token Network Token Queue Store Prog M PE RW-Systemarchitektur Kap. 13

16 Michael Flynns Taxonomie
# instruction x # Data Single Instruction Single Data (SISD) Single Instruction Multiple Data (SIMD) Multiple Instruction Single Data Multiple Instruction Multiple Data (MIMD) Später hinzu gekommen: Single Program Multiple Data (SPIMD) RW-Systemarchitektur Kap. 13

17 Architekturen mit gemeinsamem Speicher
Charakteristik: Alle Prozessoren können direkt auf alle Speicherzellen zugreifen u.a. zur bequemen und schnellen Kommunikation miteinander. bequem: (i) Ortstransparenz (wo ist eine Speicherzelle); (ii) gleiche Abstraktion unterstützt wie bei heutigen Monoprozessoren, schnell: verglichen mit den anderen Modellen. Speicher zentral angeordnet oder verteilt. Besserer Name wäre Rechner mit einem globalen Adressraum. Typisches Problem: Skalierbarkeit. Verbindungsnetzwerk P M M RW-Systemarchitektur Kap. 13

18 Architekturen mit Nachrichtenaustausch
Prozessoren können direkt nur auf lokalen Speicher zugreifen und alle Kommunikation und Synchronisation geschieht mittels Nachrichten. Eigenschaften: Das Senden einer Nachricht verursacht häufig mehrere Overheads: Aufbau des Nachrichtenkopfs; Kopieren der Daten in den Netzwerk-Puffer; Senden der Daten; Empfangen der Daten im Puffer; Kopieren der Daten aus dem Puffer, von Kernraum in den Benutzerraum - oft BS involviert. Synchronisation mit Nachrichten basiert auf (aufwendigen) Handshake-Protokollen. Ein Vorteil: Skalierbarkeit. P M P M P M Verbindungsnetzwerk RW-Systemarchitektur Kap. 13

19 Gemeinsamer Speicher vergl. mit Nachrichtenaustausch
Rechner mit einem Adressraum können durch Rechner mit Nachrichtenaustausch simuliert werden: Lesen aus einer oder Schreiben in eine nichtlokale Speicherzelle realisiert durch Senden und Empfangen entsprechender Nachrichten. Der Unterschied liegt in der Geschwindigkeit und der Leistung: Ein Rechner mit einem Adressraum ist spezialisiert auf Lesen aus dem und Schreiben in den Speicher, unterstützt in Hardware und ist deshalb viel schneller. Der Prozessor kann außerdem parallel dazu anderes tun, z.B. Rechnen. RW-Systemarchitektur Kap. 13

20 Datenparallele Architekturen
Programmier-Modell: Annahme: Ein Prozessor assoziiert mit jedem Datenelement und unterstützt mit billiger globaler Synchronisation. Beispiel: Jedes Berechnungselement besitzt einen Mitarbeiterdatensatz mit seinem Gehalt; man berechne eine soziale abgestufte Gehaltserhöhung: Code: Die Gesamtheit der Operationen auf der Gesamtheit der Daten braucht eine kleine Zahl von Zyklen.0 Häufigste Vertreter: Graphik-Coprozessoren für Rendering großer Szenen If gehalt > € then gehalt = gehalt *1.05 else gehalt = gehalt *1.10 RW-Systemarchitektur Kap. 13

21 Datenparallele Architekturen (2)
Datenparallele Architekturen oft charakterisiert durch: Einen Befehlsstrom Schwache Prozessoren mit beschränktem lokalen Speicher Effizientes Verbindungsnetzwerk Grenzen der Anwendbarkeit ist eine offene Frage: aber numerische Algorithmen sind bereits auf GPUs effizient realisiert worden. RW-Systemarchitektur Kap. 13

22 Datafluss-Architekturen
In Datenfluss-Rechnern werden Operationen durch die Verfügbarkeit von Operanden aktiviert. Im Gegensatz dazu sind traditionelle Rechner Steuerflussrechner, die Folgen von Befehlen mit explizitem oder implizitem Steuerfluss (control flow) ausführen. 1 b c e a d f + - * a=(b+1)*(b-c) d=c*e f=a*d Datenflussgraph • Vorteil: alle Abhängigkeiten sind explizit dargestellt im Datenflussgraphen; kein Problem, vorhandene Parallelität zu identifizieren. RW-Systemarchitektur Kap. 13

23 Datafluss-Architekturen (2)
Probleme: Granularität der Operationen Effiziente Behandlung von komplexen Datenstrukturen wie Feldern Komplexität der Mustererkennungs-und Speichereinheiten Evtl. zu großer Grad an Parallelität Waiting Matching Instruction Fetch Execute Form Token Network Token Queue Store Prog RW-Systemarchitektur Kap. 13

24 Systolische Architekturen
Grundprinzip: Ersetzen eines einzigen REs durch ein reguläres Feld von Berechnungselementen, zwischen denen Daten fließen. Hoher Durchsatz ohne große Erweiterung der Speicherbandbreite, Operanden fließen von BE zu BE. M RE Unterschied zu einem Rechner mit Operationsfließband: Prozessorfeld kann nichtlinear sein, z.B. hexagonal Verbindungen zwischen REs können in mehrere Richtungen gehen REs können lokalen Befehls- und Datenspeicher haben und sind universeller als eine Pipeline-Stufe RW-Systemarchitektur Kap. 13

25 Systolische Architekturen (2)
Example: Systolische Feld für 1-D-Konvolution Probleme: Systemintegration: Transfer der Daten vom Originalfeld in das systolische Feld und zurück Übersetzung von imperativen Programmen in Programme für systolische Felder Universelle systolische Felder? x(i+1) x(i) x(i-1) x(i-k) y(i) y(i+1) y(i) = w(j)*x(i-j) j=1 k y(i+k+1) y(i+k) W (1) W (2) W (k) RW-Systemarchitektur Kap. 13

26 Architekturthemen RW-Systemarchitektur Kap. 13

27 Benennungen oder Benennungsstrategie hat Einfluss auf:
Einen globalen linearen Addressraum (gemeinsamer Speicher) oder Einen globalen segmentierten Addressraum (globale Objecte) Mehrere lokale Address/Namensräume (Nachrichtenaustausch) Benennungsstrategie hat Einfluss auf: Programmierer / Software Leistung Entwurfskomplexität RW-Systemarchitektur Kap. 13

28 Klassen von Anwendungen
Compute-Server Unabhängige Nutzer mit unabhängigen Berechnungen auf einem gemeinsamen Höchstleistungsrechner Synchronisation nur für den koordinierten Zugriff auf Ressourcen. Speicher, Festplatten, Dateisystem Datenbank-Server Benutzer führen Transaktionen auf einer gemeinsamen Datenbank aus, z.B. Buchungssysteme von Banken, Flugreservierungen, Internet-Auktionen Synchronisation notwendig, um Konsistenz zu garantieren Leicht parallelisierbare Anwendungen rechenintensive Aufgabe, die mehrere REs ausnützt Synchronisation benötigt zur Koordination lose gekoppelt stark gekoppelt RW-Systemarchitektur Kap. 13

29 Beispiel einer parallelen Anwendung
Diskretisierte Darstellung eines kontinuierlichen Systems Räumlich: Aufteilung auf ein Gitter zeitlich: Zustand alle dT Zeiteinheiten neu berechnen Beispielberechnung Lokalität Neuberechnung hängt nur von den Werten der Nachbarfelder ab Finite-Elemente Modell For time from 0 to maxT for each mesh element Update mesh value RW-Systemarchitektur Kap. 13

30 Abbildung auf parallele Zielarchitektur
Partitionierung Teile Gitter in Gebiete auf Teile Gebiete Prozessoren zu Berechnung auf jedem Prozessor räumliche Partitionierung P1 P2 P3 For time from 0 to maxT Get boundary values from neighbors For each mesh element Update mesh value Send boundary values to neighbors P4 P5 P6 P7 P8 P9 RW-Systemarchitektur Kap. 13

31 Komplikationen Kommunikations-Overhead Irregularitäten Synchronisation
N x N-Gitter, M Prozessoren Elemente / Prozessor = N2 / M Arbeit pro Iteration Grenzelemente / Prozessor ~ N / Sqrt(M) Kommunikation pro Iteration Kommunikation zu Berechnungslast ~ Sqrt(M) / N Limitierender Faktor bei steigender Zahl von Prozessoren: Kommunikation Irregularitäten Irreguläres Gitter, unterschiedliche Berechnungslast / Gitterelement Macht Partitionierung und Lastverteilung schwierig Synchronisation Muss alle REs in gleicher Iteration halten Bestimmung globaler Eigenschaften wie Konvergenz RW-Systemarchitektur Kap. 13


Herunterladen ppt "14 Parallele Rechner 14.1 Parallele Rechner - Einführung 14.2 Leistung"

Ähnliche Präsentationen


Google-Anzeigen