2 Rechnerarchitekturen

Ähnliche Dokumente
Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

Paralleles Rechnen. (Architektur verteilter Systeme) von Thomas Offermann Philipp Tommek Dominik Pich

Johann Wolfgang Goethe-Universität

Hardware-Architekturen

Systeme 1: Architektur

Intel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte

Maik Zemann. Flynn s Taxonomie. Parallele Rechnerarchitekturen SS 2004 Technische Fakultät Universität Bielefeld. 3. Mai 2004 Flynn's Taxonomie 1

Ein Verteiltes System ist eine Ansammlung von unabhängigen Rechnern, die für seine Benutzer wie ein einzelnes Computersystem aussieht.

Grundlagen der Parallelisierung

Multiprozessor System on Chip

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität

CPU Speicher I/O. Abbildung 11.1: Kommunikation über Busse

Rechnerarchitektur SS 2012

Mehrprozessorarchitekturen

Verteilte Betriebssysteme

Architektur paralleler Plattformen

Seminar Parallele Rechnerarchitekturen SS04 \ SIMD Implementierung aktueller Prozessoren 2 (Dominik Tamm) \ Inhalt. Seite 1

Teil Rechnerarchitekturen M07. Multiprogramming und Tasking, Flynn-Klassifikation, Parallelismus. Corinna Schmitt

Rechnergrundlagen SS Vorlesung

Multicore-Architekturen

System-Architektur und -Software

Mikroprozessortechnik Grundlagen 1

Rechnerarchitektur und Betriebssysteme (CS201): Multiprogramming und -Tasking Flynn-Klassifikation, ILP, VLIW

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1

Aktuelle Trends und Herausforderungen in der Finite-Elemente-Simulation

Grafikkarten-Architektur

Parallelverarbeitung. Parallelverarbeitung. 2. Grundlagen. 2. Grundlagen. 2.1 Parallelität

LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610

IT für Führungskräfte. Zentraleinheiten Gruppe 2 - CPU 1

CUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg


Parallelrechner: Klassifikation. Parallelrechner: Motivation. Parallelrechner: Literatur. Parallelrechner: PC-Technologie SMP-Multiprozessorsysteme 69

3. Rechnerarchitektur

Motivation (GP)GPU CUDA Zusammenfassung. CUDA und Python. Christian Wilms. Integriertes Seminar Projekt Bildverarbeitung

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9

Vorlesung "Struktur von Mikrorechnern" (CBS)

Multicore Architektur vs. Amdahl`s Gesetz

Konzepte der parallelen Programmierung

Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern

IT-Infrastruktur, WS 2014/15, Hans-Georg Eßer

ZENTRALEINHEITEN GRUPPE

Rechneraufbau und Rechnerstrukturen

Grundlagen der Programmierung 2. Parallele Verarbeitung

RST-Labor WS06/07 GPGPU. General Purpose Computation On Graphics Processing Units. (Grafikkarten-Programmierung) Von: Marc Blunck

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation

Philipp Grasl PROZESSOREN

Rechner Architektur. Martin Gülck

Rechnerstrukturen, Teil 2

Parallel Computing Platforms

Performance Engineering: Forschung und Dienstleistung für HPC-Kunden. Dirk Schmidl

Technische Informatik - Eine Einführung

Inhaltsangabe. 2.1 DieCPU Der Speicher Die Busse Klassifikation der von-neumann-rechner... 37

OpenMP. Viktor Styrbul

Synthese Eingebetteter Systeme. 14 Abbildung von Anwendungen auf Multicore-Systeme

Bsys2 Zusammenfassung. Definition Die CPU ist das Gehirn des Computers. Sie holt Befehle aus dem Speicher und führt sie aus.

Die Mikroprogrammebene eines Rechners

2. Der ParaNut-Prozessor "Parallel and more than just another CPU core"

Kurz: Stimme meinen Vorrednern zu: Angenehme Atmosphäre. Eher ein Fachgespräch als eine Prüfung. Eindeutig zu empfehlen

Multi-threaded Programming with Cilk

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Kapitel 1 Parallele Modelle Wie rechnet man parallel?

Einfaches MSI-Writeback-Inval-Protokoll

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Protected User-Level DMA in SCI Shared Memory Umgebungen

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Qualitätssicherung durch testen: modul., integr., system., aktzeptanz-tests Validierung: Richtiges System? Verifikation: Ist System richtig?

MULTICORE- UND GPGPU- ARCHITEKTUREN

Besprechung des 5. Übungsblattes Parallelität innerhalb der CPU Pipelining

Seminar Multicore-Programmierung

Multi- und Many-Core

1 Grundlagen. 1.1 Rechnerarchitektur. Mikroprozessortechnik MFB. Einleitung, Systemaufbau

Computational Engineering I

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

Auch hier wieder. Control. RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite. Instruction[31 26] (also: das Opcode Field der Instruktion)

moderne Prozessoren Jan Krüger

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

Fachbereich Medienproduktion

Transkript:

2 Rechnerarchitekturen

Rechnerarchitekturen Flynns Klassifikation Flynnsche Klassifikation (Flynn sche Taxonomie) 1966 entwickelt, einfaches Modell, bis heute genutzt Beschränkung der Beschreibung auf die Befehls- und Datenströme Data Streams Instruction Streams Single Multiple Single SISD MISD Multiple SIMD MIMD Befehlsstrom > Folge von Maschinenbefehlen, werden vom Leitwerk als entschlüsselte Steuerinformation an das Rechenwerk weitergeleitet Datenstrom > Daten, die vom Rechenwerk bearbeitet werden, werden zwischen dem Speicher und den Prozessorregistern übertragen 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 122

Rechnerarchitekturen Flynns Klassifikation SISD Single Instruction Stream, Single Data Stream Entspricht dem von-neumann-rechner Interner Aufbau unwichtig Befehlsstrom Leitwerk Befehlsstrom Rechenwerk Datenstrom Hauptspeicher 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 123

Rechnerarchitekturen Flynns Klassifikation SIMD Single Instruction Stream, Multiple Data Streams Rechnersystem besitzt ein Leitwerk Ein Befehl kann gleichzeitig auf Operanden in mehreren Rechenwerken angewandt werden Erweiterung des von-neumann-rechners Beispiel: GPUs (eigentlich SIMT), Vektorprozessor 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 124

Rechnerarchitekturen Flynns Klassifikation MISD Multiple Instruction Streams, Single Data Stream Mehrere Leitwerke steuern die Bearbeitung eines Datenstroms > Beispiel: fehlertolerante Systeme, die redundante Berechnungen ausführen Kaum sinnvolle Anwendung in der Praxis > MIMD Systeme sind flexibler und können zur Not wie ein MISD System benutzt werden 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 125

Rechnerarchitekturen Flynns Klassifikation MIMD Multiple Instruction Streams, Multiple Data Streams Mehrere Befehls- und Datenströme Häufig mehrere Prozessoren, die zu einem Rechner zusammengefasst sind > Multiprozessorsystem Aufbau > Meist Zusammenschluss mehrerer SISD Rechner > Große Rechenleistung, da problemunabhängig 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 126

2 Rechnerarchitekturen Parallele Rechnerarchitekturen

Wie geht es weiter? Grundsatzfrage Kann die Ausführungsgeschwindigkeit eines Programms durch Erhöhung von Taktrate / FLOPS einer CPU immer weiter gesteigert werden? 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 128

Es war einmal Expertenmeinung Prognose für die Entwicklung von CPUs aus dem Jahre 1998 Einführungsjahr 1999 2002 2005 2008 2011 2016 Takt (GHz) 1,25 2,1 3,5 6 10 16,9 Chipgröße (mm²) 340 430 520 620 750 900 Anzahl Pins 1867 2553 3492 4776 6532 8935 Transistoren/Chip 21M 76M 200M 520M 1,4G 3,62G 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 129

Schnellere CPUs? Steigerung der Taktrate Die Steigerung der Taktrate einer CPU führt zu massiver Zunahme der Abwärme Darstellung von 0en und 1en in der CPU durch Spannungen Vereinfachte Darstellung: > 0: -1 Volt > 1: 1 Volt Damit bei immer schnellerer Schaltung der Transistoren das Signal nicht so sehr verwischt, dass 0en und 1en nicht mehr unterscheidbar sind, müssen die Peaks der Spannung erhöht werden Elektronenmigration Elektronen wandern im Leiter durch das stärkere elektrische Feld Quelle: http://www.tomshardware.com/reviews/mothercpu-charts-2005,1175-2.html 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 130

Schnellere CPUs? Steigerung der FLOPS Damit eine einzelne CPU 1 TFLOP an Leistung erzielen kann, muss im schlimmsten Fall ein Terabyte an Daten pro Sekunde in die CPU geladen werden. Die Daten müssen eine Entfernung r vom Speicher zur CPU zurücklegen Ein Terabyte 10 12 Bytes Bestmögliche Transferrate ist Lichtgeschwindigkeit, also c Demnach muss r < c 1012 = 0,3 mm Man müsste ein Terabyte Daten in ein Quadrat von 0,3 mm Seitenlänge speichern. 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 131

Parallele Rechnerarchitekturen Motivation Durch Steigerung der Taktrate / FLOPS eines einzelnen Prozessors ist keine nennenswerte Leistungssteigerung mehr zu erreichen Aber: Im Programm vorhandene, unabhängige Rechenpakete können zeitgleich verarbeitet werden 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 132

Parallele Rechnerarchitekturen Shared-Memory Systeme Implizite Datenverteilung Implizite Kommunikation Es gibt verschiedene Typen von Shared-Memory Systemen Programmierung mit > OpenMP > Java-Threads Memory interconnect Process Process Process 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 133

Parallele Rechnerarchitekturen Shared-Memory Systeme Auf den Speicher kann von allen Threads eines Programms zugegriffen werden CPU 1 CPU 2 c=3+a a a=4 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 134

Parallele Rechnerarchitekturen SMP Kurz für Symmetric Multi Processing Zugriff auf den Hauptspeicher dauert für jeden Prozessorkern gleich lang Nur limitierte Skalierbarkeit Core Core Core Core Beispiel: Intel Woodcrest on-chip cache on-chip cache > Zwei Kerne pro Chip, 3.0 GHz > Jeder Chip hat 4 MB L2 on-chip cache, welcher von beiden Kernen genutzt wird bus memory 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 135

Parallele Rechnerarchitekturen Cache-Kohärenz Der Einsatz multipler Caches erzeugt die Frage nach der Konsistenz der verschiedenen Speicher Ein Multiprozessorsystem ist Cache-Kohärent wenn: Ein Wert der von einem Prozessor geschrieben wird irgendwann auch von anderen Prozessoren gesehen wird (write propagation) Schreiboperationen von mehreren Prozessoren auf die gleiche Lokalität werden von allen Prozessoren in der gleichen Reihenfolge gesehen (write serialization) Prozessoren kommunizieren über Signale um die Cache-Kohärenz sicherzustellen 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 136

Parallele Rechnerarchitekturen ccnuma Kurz für cache-coherent Non-Uniform Memory Architecture Zugriff auf den Hauptspeicher dauert unterschiedlich lange, aber gemeinsamer Adressraum Core Core Core Core Gute Skalierbarkeit on-chip cache on-chip cache on-chip cache on-chip cache Beispiel: AMD Opteron > Zwei Kerne pro Chip, 2.4 GHz > Jeder Chip hat 1 MB eigenen L2- cache memory memory interconnect 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 137

Parallele Rechnerarchitekturen Distributed-Memory Systeme Explizite Datenverteilung Explizite Kommunikation Gute Skalierbarkeit Programmierung mit MPI interconnect Process Process Process Memory Memory Memory 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 138

Parallele Rechnerarchitekturen Distributed-Memory Systeme Jeder Prozess hat seinen eigenen Speicherbereich Kommunikation per Message Passing CPU 1 CPU 2 local memory receive a a transfer a send a 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 139

2 Rechnerarchitekturen Parallele Rechnerarchitekturen Amdahl s Law

Parallele Rechnerarchitekturen Speedup und Effizienz Zeitverbrauch bei 1 CPU: T(1) Zeitverbrauch bei p CPUs: T(p) Speedup S: S p = T 1 T(p) > Gibt an, wieviel schneller die parallele Berechnung ist Effizienz E: E p = S p p 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 141

Parallele Rechnerarchitekturen Speedup und Effizienz Beispiel T(1) = 6s, T(2) = 4s > S 2 = 6 4 = 1. 5 > E 2 = 1.5 2 = 0. 75 Idealfall S(p) = p E(p) = 1 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 142

Parallele Rechnerarchitekturen Amdahl s Law Beschreibt den Einfluss des seriellen Teils eines Programms auf dessen Skalierbarkeit S p = T 1 = T 1 T p T 1 f T 1 + 1 f p = 1 f+ 1 f p > F: serieller Teil des Programms (0 <= f<= 1) > T(1): Zeitverbrauch mit 1 CPU > T(p): Zeitverbrauch mit p CPUs > S(p): Speedup > E(p): Effizienz Overhead wird nicht berücksichtigt Skalierbarkeit jedes Programms ist durch den seriellen Programmteil limitiert 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 143

Parallele Rechnerarchitekturen Speedup und Effizienz Wenn 80% (gemessen an der Programmlaufzeit) der Arbeit parallelisiert werden können und nur 20% immer seriell ausgeführt werden müssen, dann ergibt sich der Speedup wie folgt: 1 Prozessor: Zeit: 100% Speedup: 1 Effizienz: 1 2 Prozessoren: Zeit: 60% Speedup: 1.67 Effizienz: 0.83 4 Prozessoren: Zeit: 40% Speedup: 2.5 Effizienz: 0.63 Prozessoren: Zeit: 20% Speedup: 5 Effizienz: 0 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 144

Parallele Rechnerarchitekturen Speedup und Effizienz Wenn 80% (gemessen an der Programmlaufzeit) der Arbeit parallelisiert werden können und nur 20% immer seriell ausgeführt werden müssen, dann ergibt sich der Speedup wie folgt: 1 Prozessor: Zeit: 100% Speedup: 1 Effizienz: 1 2 Prozessoren: Zeit: 60% Speedup: 1.67 Effizienz: 0.83 4 Prozessoren: Zeit: 40% Speedup: 2.5 Effizienz: 0.63 Prozessoren: Zeit: 20% Speedup: 5 Effizienz: 0 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 145

speedup Parallele Rechnerarchitekturen Speedup in der Praxis Nach der ersten Parallelisierung eines Programms wird man typischerweise eine Kurve wie folgt erhalten: 8 7 Speedup according to Amdahl s law 6 5 4 3 2 1 p 1 2 3 4 5 6 7 8... 2014 - FH AACHEN, FZ Jülich, RWTH Aachen IT-Systeme, Sommersemester 2014 146