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

Slides:



Advertisements
Ähnliche Präsentationen
Fast Fourier Transformation
Advertisements

Matrixmultiplikation
Netzwerke in der Informationstechnik
Perceptrons and the perceptron learning rule
Programmieren im Großen von Markus Schmidt und Benno Kröger.
CPI Der einzelne Befehl braucht immer noch 5 Zyklen (stimmt nicht ganz, einige brauchen weniger!) Was verbessert wird, ist der Durchsatz = #Befehle /
Leistung.
Eine dynamische Menge, die diese Operationen unterstützt,
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Informatik 12 | DAES Compilerbau Wintersemester 2010 / 2011 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung.
PC-Cluster.
3. Kapitel: Komplexität und Komplexitätsklassen
Vs61 6 Verteilte Datenverwaltung. vs62 Ziel:Zusammengehöriger Datenbestand soll über mehrere Stationen verteilt werden, z.B. Fragmentierung: in mehrere.
Replikationsarchitekturen Informationsverwaltung von Netzen Sommersemester 2003 Konrad Kretschmer
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
Zentraleinheit CPU, Motherbord, RAM
Präsentation zum Thema Netzwerk Von Jan Metz.
WS 2009/10 1 Systeme 1 Kapitel 1 Aufbau von Rechnern.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Kapitel 3 5 Rechnerorganisation
Tiny TP Tiny TP gehört zwar zu den optionalen Komponenten wird aber dringend empfohlen. Tiny TP erfüllt folgende Aufgaben: 1.Zerlegung von großen Nachrichten.
SciAgents - Eine agentenbasierte Umgebung für verteilte wissenschaftliche Berechnungen Alexander StarkeSeminar Software Agenten
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Seminar parallele Programmierung SS 2003
OpenMP Präsentation im Rahmen des Seminars
Rechneraufbau & Rechnerstrukturen, Folie 10.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 10.
Architektur von Netzwerken
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 3. Quartal 2002.
Studiengang Informatik FHDW
2.5. Mikrocontroller-Komponenten
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 9.2: Specification Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
1/25 UNIVERSITY OF PADERBORN Projektgruppe KIMAS Projektgruppe KIMAS MultiAgenten-Systeme Andreas Goebels.
Vorlesung, Wintersemester 2009/10M. Schölzel 1 Optimierungstechniken in modernen Compilern Einführung.
Datenmanagement in Sensornetzen PRESTO - Feedback gesteuertes Datenmanagement - SS 2007 Sören Wenzlaff.
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
Evaluierung des ITU-T.124 Telekonferenzstandards
Entwicklung verteilter eingebetteter Systeme - Einführung
Duo- und Quad Prozessor-Architektur
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
? Was ist Informatik? Was ist Informatik? Alexander Lange
Internet: Funktionsweise und Dienste
Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation
Programmierung paralleler Algorithmen mit MPI
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Analyse von Ablaufdiagrammen
Ein Vortrag von Simon Bayer
Multiprozessoren: Herausforderung für die Software
Meldungen über Ethernet mit FINS/UDP
Petrinetze 1. Einführung Informatik : wesentlich Modellierung von
Parallelisierung für Multiprozessor-Maschinen
Landkarten Landkarten sind Tesselationen mit folgenden Eigenschaften:
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
->Prinzip ->Systeme ->Peer – to – Peer
Vs51 5 Verteilte Datenverwaltung. vs52 Situation:Zusammengehöriger Datenbestand ist über mehrere Stationen verteilt, z.B. Fragmentierung: in mehrere Fragmente.
Middleware in Java vieweg 2005 © Steffen Heinzl, Markus Mathes Kapitel 1: Architektur verteilter Systeme.
Spärliche Kodierung von Videos natürlicher Szenen Vortragender: Christian Fischer.
Rechen- und Kommunikationszentrum (RZ) Strukturierte Datensammlung in verteilten Systemen für den DHCP-Service Tim Becker Seminararbeit / /
Shared Memory Programmierung: Grundlagen
 Präsentation transkript:

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

(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

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

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

"... 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^6+ Befehle Taskniveau 10^3-10^6 Befehle Task-Parallelismus Schleifenniveau 10-1000 Befehle SW-Pipelining Anweisungsniveau 2-10 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

"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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 > 100000€ then gehalt = gehalt *1.05 else gehalt = gehalt *1.10 RW-Systemarchitektur Kap. 13

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

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

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

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

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

Architekturthemen RW-Systemarchitektur Kap. 13

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

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

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

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

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