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

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

Teil Rechnerarchitekturen. Repetitorium. Corinna Schmitt

2 Rechnerarchitekturen

Architektur paralleler Plattformen

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

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen

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

Was ist die Performance Ratio?

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

Übersicht. Einleitung. Übersicht. Architektur. Dr.-Ing. Volkmar Sieh WS 2008/2009

Datenpfad einer einfachen MIPS CPU

CPU. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Johann Wolfgang Goethe-Universität

Datenpfad einer einfachen MIPS CPU

Beispiele von Branch Delay Slot Schedules

Instruktionen pro Takt

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Rechner Architektur. Martin Gülck

Arbeitsfolien - Teil 4 CISC und RISC

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

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

Grundlagen der Rechnerarchitektur

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

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005

CPU, GPU und FPGA. CPU, GPU und FPGA Maximilian Bandle, Bianca Forkel 21. November 2017

Computational Biology: Bioelektromagnetismus und Biomechanik

Neue Prozessor-Architekturen für Desktop-PC

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

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

Multicore-Architekturen

High Performance Embedded Processors

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

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden.

Technische Informatik 1 - HS 2016

moderne Prozessoren Jan Krüger

3 Technikarchitekturen

Grafikkarten-Architektur

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn


Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß?

Mehrprozessorarchitekturen

Grundlagen der Parallelisierung

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

DIGITALE SCHALTUNGEN II

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

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

Die Mikroprogrammebene eines Rechners

B Einführung. 1 Historische Entwicklung. 1 Historische Entwicklung (3) 1 Historische Entwicklung (2)

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Vorlesung Rechnerarchitektur. Einführung

HW/SW Codesign 5 - Performance

Computer-Architektur Ein Überblick

Architektur und Organisation von Rechnersystemen

Aufbau und Funktionsweise eines Computers

Systeme 1: Architektur

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Technische Informatik - Eine Einführung

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

Arithmetische und Logische Einheit (ALU)

Verteilte Betriebssysteme

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

Hardware-Architekturen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Seminar Multicore-Programmierung

Prozessor- und Rechnerarchitekturen (Master)

Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega128

Rechneraufbau und Rechnerstrukturen

PRIP-Preis. Effizientes Object Tracking durch Programmierung von Mehrkernprozessoren und Grafikkarten

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

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

Rechnerorganisation. 1. Juni 201 KC Posch

Die Sandy-Bridge Architektur

Beispielvortrag: HPCG auf Intel Haswell-EP

Rechnergrundlagen SS Vorlesung

Das Prinzip an einem alltäglichen Beispiel

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

Rechnernetze und Organisation

Die Vision Landschaft und was sie mit Moore s Gesetz zu tun hat

Multiprozessoren. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Teil VIII Von Neumann Rechner 1

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

Grundlagen der Rechnerarchitektur

Was ist Rechnerleistung

Rechnernetze und Organisation

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH

Beispiel Parallelisierung 2D Laplace. Lagrange Formulierung/Hyperelastisches Material. Finite Differenzen Diskretisierung

Wichtige Rechnerarchitekturen

Multicore Architektur vs. Amdahl`s Gesetz

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

Programmierung Paralleler Prozesse

Kapitel 1 Parallele Modelle Wie rechnet man parallel?

Masterpraktikum Scientific Computing

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Datenpfad einer einfachen MIPS CPU

Raytracing auf Desktop PCs Optimizing Cache Usage (Intel Corp.)

General Purpose Computation on GPUs

DOSEMU. Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Matthias Felix FAU. 13.

Transkript:

Teil Rechnerarchitekturen M07 Multiprogramming und Tasking, Flynn-Klassifikation, Parallelismus Corinna Schmitt corinna.schmitt@unibas.ch

Multiprogrammierung und -Tasking 2015 Corinna Schmitt Teil Rechnerarchitekturen - 304

Mono-Programmierung q Computer wird nur für ein einziges Programm verwendet q Verschiedene Speicher-Layouts denkbar 2015 Corinna Schmitt Teil Rechnerarchitekturen - 305

Multi-Programmierung q Multiprogrammierung: mehrere Programme im Hauptspeicher jedes Programm hat seinen eigenen Zustand Program Counter (PC) CPU bzw. OS wählt, welches Programm (kurz) bearbeitet wird pseudoparallele statt sequentielle CPU-Nutzung q Multiprogrammierung heißt nicht unbedingt Interaktivität: Frühe Multiprogramming-OS waren für Batch-Jobs 2015 Corinna Schmitt Teil Rechnerarchitekturen - 306

Time-Sharing System (TSS) / Multitasking q Timesharing Variante der Multiprogrammierung: sehr häufiges Umschalten zwischen Programmen/Tasks Für festes Zeitintervall (Quantum) oder bis ein Programm blockiert, d.h. warten muss Jeder Benutzer hat die Illusion, jederzeit den ganzen Rechner zur Verfügung zu haben. Multitasking: eine CPU für mehrere (gleichzeitige) Aufgaben q In einem TSS wird das Programm eines Benutzers Prozess / Task genannt. 2015 Corinna Schmitt Teil Rechnerarchitekturen - 307

Definitionen q Ein Programm enthält Code und Daten, welche eventuell schon im Hauptspeicher installiert sind. q Ein Prozess ist ein installiertes Programm mit dazu gehörigen Ressourcen (Ein-Ausgabe, Benutzerrechte, etc). q Ein Thread ist eine Abstraktion für CPU-Aktivität (Kontrollfluss), wobei ein Prozess mindestens einen Thread hat. 2015 Corinna Schmitt Teil Rechnerarchitekturen - 308

Multiprozessor vs TSS 2015 Corinna Schmitt Teil Rechnerarchitekturen - 309

Begriffe q Multiprogrammierung betrifft Anzahl Programme im Hauptspeicher. q Multitasking betrifft Anzahl gleichzeitiger Aktivitäten: innerhalb einer CPU (Prozesse), oder auch innerhalb eines Programmes (Threads) q Multiprocessing betrifft Anzahl vorhandener CPUs (oder Cores) 2015 Corinna Schmitt Teil Rechnerarchitekturen - 310

Context Switch q Kontextwechsel übergibt die CPU an einen anderen Prozess Zustand des alten Prozesses speichern im Hauptspeicher oder auf Harddisk Zustand des neuen Prozesses laden Wiederherstellen der Registerinhalte Wiederherstellen des (virtuellen) Hauptspeichers, memory map und dann starten q Context Switch benötigt 1... 1000 µsekunden teuer, da reiner Verwaltungsaufwand ohne Rechennutzen 2015 Corinna Schmitt Teil Rechnerarchitekturen - 311

Context Switch Abschätzung beim AVR-Chip q Zu sichernder Zustand eines Programmes: Program Counter, Stack Pointer, 32 Register 36 Bytes q Interrupt Handler aufrufen, Register freimachen pro Register: 2 Takte für Speichern, dec, Vergleich, branch Nächstes Programm auswählen: 100 Takte Benötigte Zeit Total: bis zu 400 Takte q Bei 4Mhz CPU-Taktfrequenz: ca 0.1 ms pro Context Switch bei 1000 Context Switches/sec (Linux): 100 ms d.h. 10% der Rechenkapazität! 2015 Corinna Schmitt Teil Rechnerarchitekturen - 312

Schnellere Rechner durch... q Schnellere CPUs: Cache RISC Pipelining Superscalare CPU-Architektur q Mehrere CPUs: Multiprozessoren Verteilte Systeme q Andere CPU-Architektur: Dataflow 2015 Corinna Schmitt Teil Rechnerarchitekturen - 313

Multiprozessoren-Rechner q Rechnergeschwindigkeit erhöhen mit mehr CPUs. q Varianten: Welches Netzwerk verbindet die CPUs? Bus, Hyperwürfel, Matrix? Müssen sich die CPUs den Bus für Speicherzugriff teilen? Gibt es Unterschiede zwischen (CPU-)lokalem und gewöhnlichem Hauptspeicher? Können die CPUs unabhängig voneinander an unterschiedliche Daten arbeiten? q [ Je nach Problem trotz Zusatz-CPU kein Speed-up messbar. ] 2015 Corinna Schmitt Teil Rechnerarchitekturen - 314

Flynn-Klassifikation 2015 Corinna Schmitt Teil Rechnerarchitekturen - 315

Klassifikation von Flynn (1966) q Niemand ist wirklich glücklich damit, aber alle benutzen sie. q Zwei Grundkategorien: Code: Strom von Befehlen Data: Strom von Dateneinheiten q Hauptfrage: Wie viele Befehlsströme und Datenströme werden eingesetzt? 2015 Corinna Schmitt Teil Rechnerarchitekturen - 316

Single Instruction Single Data (SISD) q SISD ist der klassische von-neumann Computer, inklusive Varianten wie Harvard-Architektur getrennter Programm- und Datenspeicher 2015 Corinna Schmitt Teil Rechnerarchitekturen - 317

Single Instruction Multiple Data (SIMD) q Mehrere (identische) Prozessoren arbeiten mit verschiedenen Datenelementen aber immer die gleiche Instruktion PU PU 2015 Corinna Schmitt Teil Rechnerarchitekturen - 318

SIMD Beispiele (1) q Illiac IV (1965-1976) 64 processing elements (PE) q Vector-Prozessoren q Thinking Machines CM-1 (connection machine, 80+90er-Jahre) 1024 oder mehr Ausführungselemente jedes arbeitet auf einem (!) Bit eine Kontrolleinheit gibt Instruktion für alle aus jedes processing element hat anderes Datum zu bearbeiten 2015 Corinna Schmitt Teil Rechnerarchitekturen - 319

Connection Machine (1) q Connection Machine (CM-1) Ein processing element (PE) besteht aus einer einfachen ALU. Eine zentrale Kontrolleinheit zur Steuerung. Frontend-Computer (CM) zur Steuerung der CM Compilieren von Programmen etc. 2015 Corinna Schmitt Teil Rechnerarchitekturen - 320

Connection Machine (2) q In Hollywood-Filmen vorweggenommen Links: WOPR in War Games, 1983 CM-5 in Jurassic Parc, 1993 Rechts: CM-2 2015 Corinna Schmitt Teil Rechnerarchitekturen - 321

Multiple Instruction Multiple Data (MIMD) q Jeder Prozessor arbeitet unabhängig mit unterschiedlichen Daten. 2015 Corinna Schmitt Teil Rechnerarchitekturen - 322

Multiple Instruction Single Data (MISD) q Eher der Vollständigkeit halber, aber keine Realisierung! q Man könnte behaupten, dass CPUs mit Pipeline zur MISD-Klasse gehören. 2015 Corinna Schmitt Teil Rechnerarchitekturen - 323

Parallelismus 2015 Corinna Schmitt Teil Rechnerarchitekturen - 324

Parallelismus-Grade 2015 Corinna Schmitt Teil Rechnerarchitekturen - 325

Feingranularer SISD-Parallelismus: ILP q Instruction Level Parallelism (ILP) ist eine überlappende Ausführung unabhängiger Instruktionen q Statistisch: eine Verzweigung nach durchschnittlich 5 Befehlen natürliche Basisblöcke für ILP q Zwei Ansätze nötig, um ILP umzusetzen: Hardware (pipeline, superscalar etc) Software (compiler) q ILP über den Verzweigungspunkt hinaus? Hazards 2015 Corinna Schmitt Teil Rechnerarchitekturen - 326

Pipeline für die CPU q Vier typische Phasen der Abarbeitung eines Befehls: IF Instruction Fetch Speicherzugriff (Befehle und Daten) ID Instruction Decoding Einzelaufgaben ableiten (Registerbewegungen, ALU-Modus etc) EX Execution / Durchführung WB Write Back / Resultate zurückschreiben q Optional: MEM Memory Access zwischen ID und EX q Bei serieller Ausführung: 4 (5) Taktzyklen für 1 Befehl 2015 Corinna Schmitt Teil Rechnerarchitekturen - 327

Skalare CPU q Pipeline: 4 (z.t. bis 12) Befehle gleichzeitig in Bearbeitung Erlaubt skalare CPUs : 1 Befehl pro Takt A = IF, Instruction Fetch B = ID, Instruction Decoding C = EX, Excecution D = WB, Write Back 2015 Corinna Schmitt Teil Rechnerarchitekturen - 328

Superskalare CPU q Mehr als 1 Instruktionsabarbeitung pro Takt, im Mittel! q Zusatztricks: mehrere ALUs, FPU, SIMD-Werke (siehe MMX) q Challenge: Hardware muss für gute Belegung sorgen 2015 Corinna Schmitt Teil Rechnerarchitekturen - 329

Very Long Instruction Words (VLIW) q Explizites Scheduling fest vorgegeben im Befehlswort q Instruction words können mehrere 100 bits lang sein Jede Instruktion spezifiziert multiple Operationen ILP und Datenbewegungen werden zu Compile-Zeit spezifiziert 2015 Corinna Schmitt Teil Rechnerarchitekturen - 330

Prozessor-Struktur für VLIW q Funktionseinheiten benutzen gemeinsamen Register File q Instruktionsfelder tragen Opcodes für verschiedene Einheiten Code Compaction = Prozeß zur Instruktionsgenerierung 2015 Corinna Schmitt Teil Rechnerarchitekturen - 331

Explicit Parallel Instruction Computer (EPIC) (1) q Der Intel/HP IA-64 Prozessor (Projektname Merced, Itanium): Intels Abkehr vom x86-befehlssatz Langes Befehlswort: 128 bits Beinhaltet 3 Befehle Enttäuschende Performance Itanium 2 q Konkurrenz durch AMD64 Opteron: 64-Bit CPU mit Unterstützung für IA-32-Befehle Intel schwenkte um und stellte IA-32e vor. 2015 Corinna Schmitt Teil Rechnerarchitekturen - 332

Explicit Parallel Instruction Computer q Itanium-2 Chip, 416 mm 2 (EPIC) (2) q Gut sichtbar: grosses Volumen an L3 cache (blau) q Gefahr von zu viel Ausschuss bei so vielen Memory-Gattern: Error Correcting Code q Vergleich zum Itanium 1: Kürzere Pipeline (damit weniger falsch -Ausführungen) 128-bit breiter frontside bus 2015 Corinna Schmitt Teil Rechnerarchitekturen - 333

Explicit Parallel Instruction Computer (EPIC) (3) q Itanium-2 Block-Diagramm: Beachte die 11 issue ports (B, M, I, F) 2015 Corinna Schmitt Teil Rechnerarchitekturen - 334

SIMD Beispiel: Vektor-CPU q Hersteller von Vektorrechner: Cray, Convex, Fujitsu, Hitachi, NEC 2015 Corinna Schmitt Teil Rechnerarchitekturen - 335

Vektor-Prozessor q Optimierte ALU für Vektor- und Matrix-Operationen ( konventioneller skalarer Prozessorteil nicht dargestellt) 2015 Corinna Schmitt Teil Rechnerarchitekturen - 336

Vektor-Berechnung (1) 2015 Corinna Schmitt Teil Rechnerarchitekturen - 337

Vektor-Berechnung (2) 2015 Corinna Schmitt Teil Rechnerarchitekturen - 338

Vektor-Prozessor q Interface zum Hauptspeicher q Address Generation Unit (AGU) = Daten in die Vektorregister bringen Lädt/speichert ganze Matrix-Spalten und Reihen 2015 Corinna Schmitt Teil Rechnerarchitekturen - 339

Vektor-Supercomputer q Geschwindigkeitsvorteil wegen Verarbeitung von Vektoren: 1 Vektor-Instruktion = Schleife für normale CPU Spezialunterstützung für Speicher (liest ganze Blöcke) q Anwendungen: Fluid dynamics, finite element computations (Wettervorhersagen, Windtunnel/Crash-Simulationen) Multimedia (rendering) q Bezug zu Intel MMX-Instruktionen: erlaubt Aufteilung eines 64bit-Register in 8x8bits oder 4x16 Bits Instruktionen, um mit solchen mini-vektoren zu rechnen 2015 Corinna Schmitt Teil Rechnerarchitekturen - 340

Vector Computers with Style q Auch hier berühmtes Design Computer als Sitzbank (70er Jahre, heute beliebtes Ausstellungsobjekt im Foyer ETHZ, EPFL) 2015 Corinna Schmitt Teil Rechnerarchitekturen - 341

Hyper-Threading-Technology (HTT) q Logische Parallel-CPU: Nur Register werden dupliziert Schnelles Umschalten zwischen Registersätzen Weiterhin nur ein CPU-Kern q Sieht für das Betriebssystem aus wie zwei CPUs: Jede logische CPU erhält einen Thread zur Bearbeitung Wenn ein Thread blockiert ist, kommt der andere zum Zug q Zuerst in der Xeon-Reihe, nun auch in der Pentium- Reihe. 2015 Corinna Schmitt Teil Rechnerarchitekturen - 342

q Mehrere CPU-Kerne auf einem Chip q Bus-Interface der Flaschenhals q 16-core und mehr... q Software: Wie alle Cores immer beschäftigt halten? Multi-Core CPU 2015 Corinna Schmitt Teil Rechnerarchitekturen - 343

Anzeigen der Multi-Core CPU Nutzung Windows-PC à MAC Book Pro: Excel, Vorschau, Virtual Box mit Win XP, imessage, Terminal, Aktivitätsanzeige 2015 Corinna Schmitt Teil Rechnerarchitekturen - 344

Moore`s Law q Gordon E. Moore (Mitbegründer von Intel) macht Prognose: Anzahl Transistoren auf einem Chip verdoppelt sich alle zwei Jahre, d.h. exponentielles Wachstum! Stimmt recht gut seit Mitte 60er/Anfangs 70er-Jahre q In der Öffentlichkeit besser bekannt auf der Performance-Seite: Die Performance verdoppelt sich alle 18 Monate. q Self-fulfilling prophecy : Heute nur noch mit Multi-Cores zu erreichen. 2015 Corinna Schmitt Teil Rechnerarchitekturen - 345

Moore`s Law Transistorenanzahl (1971-2011) 2015 Corinna Schmitt Teil Rechnerarchitekturen - 346

Moore`s Law Taktrate stagniert 2015 Corinna Schmitt Teil Rechnerarchitekturen - 347

Immer mehr Transistoren auf einem VLSI-Chip q SIA 1997 Roadmap für Prozessoren: SIA=American Semiconductor Industry http://public.itrs.net/ http://www.sematech.org/public/home.htm... wurde schnell von der Realität überholt 2015 Corinna Schmitt Teil Rechnerarchitekturen - 348

Immer mehr Transistoren auf einem VLSI-Chip 2015 Corinna Schmitt Teil Rechnerarchitekturen - 349

Mehr Leistung bei weniger Stromverbrauch 2015 Corinna Schmitt Teil Rechnerarchitekturen - 350

Verfügbarkeit von Speicherchips 2015 Corinna Schmitt Teil Rechnerarchitekturen - 351

q www.cscs.ch Supercomputer in CH q Nationales Supercomputing-Zentrum der ETHZ in Mano, Tessin (Swiss National Supercomputing Centre). Stand 2013: Cray XE6 47 872 compute cores (AMD Opteron 6272 @ 2.1 GHz) over 46 Terabytes of memory theoretical peak performance of 402 TFlops Cray XK7 GPU/CPU hybrid supercomputing system 272 nodes, each one equipped with 16-core AMD Opteron CPU, 32 GB DDR3 memory and one NVIDIA Tesla K20X GPU with 6 GB of GDDR5 memory for a total of 4352 cores and 272 GPUs Cray XC30, IBM idataplex, IBM x3850,... Speicher- Ressourcen 2015 Corinna Schmitt Teil Rechnerarchitekturen - 352