Wissenschaftliches Rechnen in der Praxis: Hardware und Hardware-orientierte Programmierung
|
|
- Emma Sauer
- vor 7 Jahren
- Abrufe
Transkript
1 Wissenschaftliches Rechnen in der Praxis: Hardware und Hardware-orientierte Programmierung Dominik Göddeke Vorlesung Wissenschaftliches Rechnen Fakultät für Mathematik 29. Juni 2010
2 Hinweise Folien Prüfungen Nicht nur die VL von Prof. Turek sind prüfungsrelevant In den Nicht-Turek VL zählen Konzepte und Ideen und nicht technische Details Wer Code-Details auswendig lernt ist selbst schuld
3 Wo waren wir? Die Memory-Wall-Problematik Daten zu lesen und zu schreiben ist viel teurer als Berechnungen mit ihnen durchzuführen Abstand zwischen Rechengeschwindigkeit und Speicherbandbreite wird immer größer PDE-Codes sind fast immer bandbreitenlimitiert Rechnen: 60% schneller pro Jahr Speichertransfers: 10-30% schneller pro Jahr, je nachdem, welche Ebene der Speicherhierarchie
4 Beispiel (vereinfacht aber instruktiv) Addition zweier Vektoren der Länge n (zu lang für den Cache) Rechenoperationen: n, Speicheroperationen: 3n, 8 Byte pro Wert Arithmetische Intensität: 1/3 Mein Rechner: 12 GFLOP/s Rechnung, 10 GB/s Speicherbandbreite Um 12 GFLOP/s zu sehen, bräuchten wir (1/3)^-1 * 8 * 10 GB/s = 0.24 TB/s Speicherbandbreite D.h. 24 mal so viel wie wir haben Vergleich: 2/3 der Festplatte in meinem Laptop pro Sekunde kopieren Andersherum argumentiert Wir können maximal (Sonntags, bei gutem Wetter und bergab) nur 12/24 = 0.5 GFLOP/s für diese Operation erreichen! D.h. 4.2% der theoretischen Maximalleistung Memory wall: Dieser Prozentsatz wird immer kleiner
5 CPUs und Speicherhierarchie (off-chip) Northbridge-Southbridge Architektur (oder auch: von-neumann-arch.) Gängige Praxis in normalen PCs und Workstations Und deshalb auch in Clustern die aus commodity HW zusammengesetzt sind LiDOng: Multiprozessor-System, aber kein prinzipieller Unterschied Idee: Standardisierte Komponenten Jede CPU arbeitet (im Prinzip) mit jedem Speicher und jeder Grafikkarte jeden Herstellers zusammen
6 Latenz und Bandbreite Latenz: Wie lange dauert es, ein Datum zu holen? Gemessen typischerweise in Nano- oder Mikrosekunden (10^-9-10^-6 Sekunden) Absolute Zahlen sind wenig hilfreich. Schlauere Referenzwerte: CPU-Takt (CPU in meinem Rechner: 2.66 GHz, d.h. 2,66 ns pro Takt) Latenz von 10 μs entspricht /2,66 = 3760 Takten Maximale Fliesskomma-Berechnung (meine CPU: 10 GFLOP/s, d.h. 0.1 ns pro Operation) In Wirklichkeit 12 GFLOP/s aber egal Latenz von 10 μs entspricht /0.1 = Fliesskommaoperationen Simplistisch: Diese Bierdeckel-Rechnungen setzen voraus, dass die Daten, die für diese Rechnungen nötig sind, in Nullzeit zugreifbar sind Aber: Es geht hier im Moment um ein Gefühl für Größenordnungen
7 Latenz und Bandbreite Bandbreite: Wie viele Daten kann ich in gegebener Zeit tatsächlich transferieren? Auch: (Speicher-) Durchsatz Klar: Man transferiert nicht jedes Datum einzeln, deshalb ist Bandbreite nicht dasselbe wie Latenz Gemessen typischerweise in GB/s Memory wall hat zwei Aspekte: Latenz und Bandbreite Daumenregel: Latenz = kleine Datenmengen, Bandbreite = große Datenmengen Für uns ist üblicherweise Bandbreite relevanter
8 Latenz und Bandbreite Latenz minimieren in Hardware Über lange Distanzen (von PC zu PC): GHz-Takte in der Rechnung implizieren schon physikalische Grenzen (Lichtgeschwindigkeit!) bei der Signallaufzeit Lange bis mittlere Distanzen: Daten müssen durch viele verschiedene Instanzen laufen (Ethernet Netzwerkkarte Southbridge Northbridge CPU), jede Instanz bremst Bandbreite maximieren in Hardware Technischer Hintergrund: Busse Mehrere Datenwege (Leitungen) parallel Viele Transfers können gleichzeitig über einen Bus / eine Leitung / ein Kabel laufen, wenn der Sender sie schnell genug auf den Bus packen kann und/oder der Empfänger sie schnell genug wieder auslesen kann Multicore: Viele Speichertransfers zu verschiedenen Zielen gleichzeitig Das war die Elektrotechnik-Folie für heute
9 Beispiel: Latenz Netzwerk Ethernet PC zu PC Gigabit Ethernet (mein PC) Latenz ~150 μs = s (um eine Nachricht von Hilmar s PC zu meinem PC zu schicken) Bei 10 GFLOP/s theoretischer maximaler Rechenleistung entspricht dies ca. 1.5 Millionen Fliesskomma-Operationen Supercomputer: Infiniband statt Ethernet Alle Ethernet-Varianten haben praktisch dieselbe Latenz Infiniband 10-50fach kleiner Hausnummern: gige-hardware kostet 1 EUR (auf Mainboard), 10 EUR (als PCI-Karte); IB-Karte kostet 500 EUR; Preise für Kabel und Switches dazu proportional
10 Beispiel: Latenz Hauptspeicher Genaue Werte sehr variabel Aber: 10 ns ist ein guter Daumenwert für aktuelle Speichermodule Je nach Mainboard/RAM-Hersteller und Mut des Übertakters: 8-16 ns Vergleich mit Netzwerk /10 = mal bessere Latenz als gige (!!!) Keine Überraschung, nur die Größenordnung beeindruckt Vergleich mit CPU 10 / 0.1 = 100 bei 10 GFLOP/s 100 Operationen pro Latenz eines Datums
11 Beispiel: Bandbreite Bandbreite von gige 1000 Mbit/s = 125 MB/s theoretisch Bandbreite von Infiniband 1-4 GB/s theoretisch (SDR IB zu QDR IB) Unterschied zu Ethernet erklärt die höheren Kosten um HW zu kaufen Bandbreite des Hauptspeichers GB/s je nach aktueller Architektur Mein Rechner: 10 GB/s (Stand 2008) Neue Nehalem-Knoten in LiDOng: 33 GB/s
12 Zusammenfassung (off-chip) Latenz Speicher reagiert Faktor mal schneller als das Netzwerk Bandbreite (wichtig) Faktor zwischen Netzwerk und Speicher Wenn genug transferiert wird so dass Latenz ignoriert werden kann Aktueller Schnappschuss Tatsächliche Abstände werden immer größer Relevant sind Größenordnungen, und die bleiben mehr oder weniger konstant
13 Jetzt: on-chip Beispiel: AMD Athlon64 CPU (2004, echtes Die-Foto)
14 Jetzt: on-chip Beispiel: Intel Core2 (mein PC, 2008, echtes Die-Foto)
15 Chipfläche einer CPU Cache 50-60% der Chipfläche Level 1 Cache (L1 Instruktionen und Daten) Level 2 Cache (L2 Daten) Manchmal auch: L3 Cache (on-chip oder off-chip aber dedizierte Leitungen) Kontrollfluss und HW-Heuristiken (Branch Prediction etc.) 30-40% der Chipfläche Rechnen Weniger als 10% der Chipfläche (inklusive Register) Verhältnisse stimmen auch noch für Multicore-Chips
16 CPUs: Rechnen Was passiert in den 5-10% der CPU, die tatsächlich rechnen? Multicore wird wegabstrahiert (sonst ist das folgende proportional zur Anzahl Kerne) Generische FPU (floating point unit) Typischerweise 80 bit (mehr als double!) Wird immer dann benutzt, wenn wir oder der Compiler das nicht verbieten (-O0 aktiviert manchmal die generische FPU, es wird statt mit einfacher mit mehr als doppelter Genauigkeit gerechnet, anderes Ergebnis! Mehr dazu nächste Woche) Eine Operation pro Takt
17 CPUs: Rechnen SSE-Einheiten (streaming SIMD, früher MMX) Können SIMD auf 4 Daten (einfach genau Fließkomma) oder 2 Daten (doppelt genau Fließkomma) Also 2 oder 4 Operationen pro Takt Erinnerung: SIMD Short-Vector Instruktionen, bspw. Addition zweier Viertupel Bedingung: Alignment Daten müssen konsekutiv im Speicher abgelegt sein Damit auch das Laden in die SIMD-Register in einem Takt abläuft Register Speicher direkt neben den Recheneinheiten, schnellste Zugriffszeit
18 Caches Memory wall Caches sind das #1 Hardware-Mittel der Wahl, um sowohl dem Latenz- als auch dem Bandbreiten-Aspekt der Memory Wall Problematik entgegenzuwirken Caches halten Daten in schnellem Speicher vor, in der Hoffnung, dass sie schnell wieder genutzt werden Caches sind on-chip und haben deshalb sehr kurze Signallaufzeit zu den Rechen-Einheiten Caches sind moderat einfach in Hardware zu bauen Tradeoff: Verantwortlich für den hohen Energiebedarf von CPUs (aber das führt in dieser VL zu weit) Beispiel: Matrix-Vektor Multiplikation Matrix cachen bringt nichts (jedes A_ij wird nur einmal benötigt) Koeffizientenvektor cachen bringt viel (wird einmal pro Matrixzeile benötigt)
19 Endlich: Speicherhierarchie Bandbreite Größe Anderer Rechner: 1 GB/s Anderer Rechner: 8 GB Hauptspeicher: 10 GB/s Hauptspeicher: 8 GB L2 Cache: 100 GB/s L2 Cache: 1-4 MB L1 Cache: 1000 GB/s L1 Cache: kb Register: Nullzeit Register: wie L1 Daumenregel: eine Größenordnung pro Hierarchieebene Daumenregel: drei (!) Größenordnungen pro Hierarchieebene
20 Konsequenzen in der Praxis
21 Lokalität Lokalität Wichtigstes Mittel um die Speicherhierarchie effizient nutzen zu können Lokalität = locality of reference Räumliche Lokalität Daten, die nebeneinander im Speicher liegen sollten auch direkt nacheinander verarbeitet werden Zeitliche Lokalität Rechne möglichst lange auf Daten, die möglichst nah am Prozessor liegen Problem: Je näher wir an den Prozessor kommen, desto weniger Speicher steht zur Verfügung
22 Caches Entscheidung der Hardware Welche Daten wann wo in den Caches liegen ist eine Entscheidung der Hardware Hardware stellt Konsistenz der gecachten Daten zum Hauptspeicher sicher (Cache-Kohärenz) Hardware analysiert den Datenstrom und kann Daten asynchron zur Rechnung vom Speicher in die Caches verschieben (prefetching) Heuristik: Ob wir die Daten tatsächlich verwenden ist wissen natürlich nur wir Block-Transfers Hardware holt oft ganze zusammenhängende Datenblöcke in den Cache ( Cache-Zeile ) Diese Speichertransfers sind sehr effizient
23 Datenlayouts Gute Implementierung Verwende Datenlayouts und Datenzugriffsmuster, die es dem Compiler erlauben, die Speicherhierarchie effizient zu nutzen Maximiere Wiederverwendung von Daten Beispiele gleich Speicherhierarchie und SSE Lustigerweise sehr eng verbunden: Datenlayouts die Lokalität maximieren können typischerweise vom Compiler gut in (viel effizienteren) SSE-Code übersetzt werden
24 Datenlayouts Datenlayout für verschiedene Varianten der gleichen Operation Sparse Matrix-Vektor Multiplikation springt potentiell wild im Koeffizientenvektor herum Sparse Matrix-Vektor Multiplikation greift kontinuierlich auf die Matrix zu Mehr dazu von Hilmar morgen Optimales Layout für verschiedene Operationen Kompromiss: Layout das optimal ist für eine Operation muss nicht optimal sein für eine andere
25 Datenlayouts Beispiel: Red-Black Gauß-Seidel (Parallelisierungstechnik) Optimales Layout füt Vektor-Vector Operationen: kontinuierliche Nummerierung Sorgt für Löcher in der Anwendung eines Gauß-Seidel Schritts
26 Compiler vs. Programmierer Compiler sind prinzipiell doof Ein guter Programmierer weiß aber, wann er sich auf den Compiler verlassen kann Verschiedene Compiler sind unterschiedlich doof: Benutze die Intel- Compiler für Zeitmessungen und die GNU-Compiler für Debugging Compiler sind sehr gut (gut genug für uns) auf der Ebene der Register Explizites Placement auf Registerebene ist in der Regel kontraproduktiv Assembly-Language-Programmierung bringt kaum zusätzlichen Gewinn
27 Compiler vs. Programmierer Compiler sind sehr gut für lineare Array-Zugriffe Einfach in en-bloc Transfers übersetzbar Vec-Vec-Operationen Compiler sind manchmal gut in SSE Wenn die Indizierung kontinuierlich sind Beispiel: Vektor-Addition von vor 20 Folien liest alle Elemente kontinuierlich Dann optimale Nutzung der effektiven Speicherbandbreite Compiler sind sehr schlecht in SSE Wenn die Speicherzugriffe nicht kontinuierlich sind Und insbesondere wenn wild im Speicher herum gehüpft wird Mehr dazu im Kontext dieser Vorlesung morgen bei Hilmar und im folgenden
28 Compiler vs. Programmierer Wichtigste Regeln zusammengefasst Numerische Effizienz ist das wichtigste Ein für den Menschen gut lesbarer Code ist in der Regel auch für den Compiler gut optimierbar, aber: Datenlayout, Datenzugriffsmuster und Algorithmen müssen an die Speicherhierarchie angepasst werden (Beispiele gleich)
29 Techniken zur Steigerung der Lokalität
30 Datenlayout Benutze ein geeignetes Datenlayout Der Klassiker bei 2D-Arrays C/C++/Java: Row-major Fortran/Matlab: Column-major
31 Loop Interchange C-Stil für 2D-Arrays impliziert andere Schleifenordnung als Fortran- Stil, Lösung: Schleife an Datenlayout anpassen
32 Loop Fusion Vermeide teure, überflüssige Umwege über den Hauptspeicher wenn irgendwie möglich In der Praxis oft kompliziert, gerade wenn MatVec- und Skalarprodukte im Spiel sind Deshalb oft in Kombination mit numerischen Reformulierungen
33 Loop Blocking / Tiling Beispiel: Matrix-Transponierung
34 Fazit Korrektes Datenlayout ist sehr wichtig Mindestens um dem Compiler zu erlauben, Code so gut wie möglich zu optimieren Bisher: Kurzes Kratzen an der Oberfläche und Präsentation der wichtigsten Klassen von Verfahren um Code effizienter zu machen Morgen mehr dazu von Hilmar für numerische lineare Algebra Literatur: Markus Kowarschik und Christian Weiß: An Overview of Cache Optimization Techniques and Cache-Aware Numerical Algorithms, in: Algorithms for Memory Hierarchies, Springer Lecture Notes in Computer Science (LNCS) Nummer 2625, pp ,
Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE
Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE 754 Standard festgelegt. Es stehen sogenannte einfach
MehrOptimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen
Optimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen J. Treibig, S. Hausmann, U. Ruede 15.09.05 / ASIM 2005 - Erlangen Gliederung 1 Einleitung Motivation Grundlagen 2 Optimierungen
MehrComputergrundlagen Moderne Rechnerarchitekturen
Computergrundlagen Moderne Rechnerarchitekturen Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 Aufbau eines modernen Computers DDR3- Speicher Prozessor Prozessor PEG
MehrRST-Labor WS06/07 GPGPU. General Purpose Computation On Graphics Processing Units. (Grafikkarten-Programmierung) Von: Marc Blunck
RST-Labor WS06/07 GPGPU General Purpose Computation On Graphics Processing Units (Grafikkarten-Programmierung) Von: Marc Blunck Ablauf Einführung GPGPU Die GPU GPU Architektur Die Programmierung Programme
MehrComputergrundlagen Moderne Rechnerarchitekturen
Aufbau eines modernen Computers Computergrundlagen Moderne Rechnerarchitekturen Axel Arnold Institut für Computerphysik Universität Stuttgart DDR3- Speicher Prozessor Prozessor PEG Graphikkarte(n) weitere
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 6 Cache-freundliche Programmierung (1) Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Quadratische Matrizen Musterlösung
MehrBeispielvortrag: HPCG auf Intel Haswell-EP
Beispielvortrag: HPCG auf Intel Haswell-EP Johannes Hofmann 1 Seminarvortrag Architekturen von Multi- und Vielkern-Prozessoren Erlangen, 19.4.2016 1 Computer Architecture, University Erlangen-Nuremberg
Mehr2 Rechnerarchitekturen
2 Rechnerarchitekturen Rechnerarchitekturen Flynns Klassifikation Flynnsche Klassifikation (Flynn sche Taxonomie) 1966 entwickelt, einfaches Modell, bis heute genutzt Beschränkung der Beschreibung auf
MehrANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS. Sascha Kath
ANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS Sascha Kath Dresden, Gliederung 1. Motivation & Zielstellung 2. Systembeschreibung 3. Implementierung und Messungen
MehrCompute Unified Device Architecture CUDA
Compute Unified Device Architecture 06. Februar 2012 1 / 13 Gliederung 2 / 13 : Compute Unified Device Architecture entwickelt von Nvidia Corporation spezifiziert Software- und Hardwareeigenschaften Ziel:
MehrIn heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher
Speicherhierarchie In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Register Speicherzellen, direkt mit der Recheneinheit verbunden Cache-Speicher Puffer-Speicher
MehrCache-Speicher. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach
Cache-Speicher Design Digitaler Systeme Prof. Dr.-Ing. Rainer Bermbach Übersicht Cache-Speicher Warum Cache-Speicher? Cache-Strukturen Aufbau und Organisation von Caches Cache-Architekturen Cache-Strategien
MehrCache-Kohärenz und -Konsistenz. Betreuer: Prof. Brüning Veton Kajtazi Mat.-Nr.: Universität Heidelberg
Cache-Kohärenz und -Konsistenz Betreuer: Prof. Brüning Veton Kajtazi Mat.-Nr.: 3220501 Universität Heidelberg Inhaltsverzeichnis Wozu Caches? Unterschied Kohärenz und Konsistenz MESI-Protokoll Fazit 2
MehrVorlesung Hochleistungsrechnen - SS Thomas Ludwig 1
Vorlesung Hochleistungsrechnen - SS 2010 - Thomas Ludwig 1 Vorlesung Hochleistungsrechnen - SS 2010 - Thomas Ludwig 2 Vorlesung Hochleistungsrechnen - SS 2010 - Thomas Ludwig 3 Siehe: http://en.wikipedia.org/wiki/amdahl%27s_law
MehrLeistungsanalyse: Analytisch/Mathematisch, Modellierung oder Hands-On, Grundgedanken zur möglichen Leistung eines Programms.
Leistungsanalyse: Analytisch/Mathematisch, Modellierung oder Hands-On, Grundgedanken zur möglichen Leistung eines Programms. Modellierung: Hardware/Software-Verhalten ist komplex, daher modellieren/abstrahieren
MehrGrundlagen der Datenbanksysteme 2 (M-DB2) Dr. Karsten Tolle
Grundlagen der Datenbanksysteme 2 (M-DB2) Dr. Karsten Tolle Vorwissen und so SQL Umgang mit MySQL (Workbench) Beispieldaten zum Spielen: http://download.geonames.org/export/dump/ 2 Tuningpotential DB-Interna;
MehrGrundlagen der Rechnerarchitektur
Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie
MehrRechnerstrukturen. 6. System. Systemebene. Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1. Prozessor.
Rechnerstrukturen 6. System Systemebene 1 (Monoprozessor) 2-n n (Multiprozessor) s L1- in der L2- ( oder Motherboard) ggf. L3- MMU Speicher Memory Controller (Refresh etc.) E/A-Geräte (c) Peter Sturm,
MehrGrundlagen der Rechnerarchitektur. Speicher
Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie
MehrSysteme 1: Architektur
slide 1 Vorlesung Systeme 1: Architektur Prof. Dr. Ulrich Ultes-Nitsche Forschungsgruppe Departement für Informatik Universität Freiburg slide 2 Prüfung 18. Februar 2004 8h00-11h40 13h00-18h20 20 Minuten
MehrTECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl
MehrWie groß ist die Page Table?
Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten
MehrSpeicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen:
Übersicht 1 Einleitung Hauptspeicher 2 Hauptspeicher 3 Caches, Cache-Kohärenz Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009
MehrAlgorithmik kontinuierlicher Systeme
Algorithmik kontinuierlicher Systeme Matrixstrukturen Feste Dimension von Matrizen und Vektoren Geometrische Anwendungen Matrix beschreibt meist Transformationen von Vektoren im 2D bzw. 3D d.h. Dimension
MehrArchitektur von Parallelrechnern 50
Architektur von Parallelrechnern 50 Rechenintensive parallele Anwendungen können nicht sinnvoll ohne Kenntnis der zugrundeliegenden Architektur erstellt werden. Deswegen ist die Wahl einer geeigneten Architektur
MehrCell and Larrabee Microarchitecture
Cell and Larrabee Microarchitecture Benjamin Grund Dominik Wolfert Universität Erlangen-Nürnberg 1 Übersicht Einleitung Herkömmliche Prozessorarchitekturen Motivation für Entwicklung neuer Architekturen
MehrEinführung in C++ Oliver Rheinbach. Büro T03 R03 D53 Tel
Einführung in C++ Oliver Rheinbach Büro T03 R03 D53 Tel. 0201 183 2504 oliver.rheinbach@uni-duisburg-essen.de Universität Duisburg-Essen Fachbereich Mathematik O. Rheinbach 2 Einführung in C++ Dienstag,
MehrSchreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).
Schreiben von Pages Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Write Through Strategie (siehe Abschnitt über Caching) ist hier somit nicht sinnvoll. Eine sinnvolle
MehrArchitektur und Organisation von Rechnersystemen
Architektur und Organisation von Thema heute: More need for more Speed, Weitere Architekturmerkmale, Zahlendarstellungen, Makroassembler BKH-ArcOrg16-V3 am 01.12.2016 Ulrich Schaarschmidt BK-H/HS Düsseldorf,
MehrHochleistungsrechnen auf dem PC
Hochleistungsrechnen auf dem PC Steffen Börm Christian-Albrechts-Universität zu Kiel Ringvorlesung Informatik, 26. Juni 2014 S. Börm (CAU Kiel) Hochleistungsrechnen auf dem PC 26. Juni 2014 1 / 33 Übersicht
MehrVorlesung 4: DATENSTRUKTUREN UND ALGORITHMEN
Vorlesung 4: DATENSTRUKTUREN UND ALGORITHMEN 107 Wiederholung zur Speicherhierarchie! EM- bzw. I/O-Modell: Übergang der Ebenen universell! Blockweise Abarbeitung unter Ausnutzung von Lokalität Chip On-/off-Chip,
MehrMotivation (GP)GPU CUDA Zusammenfassung. CUDA und Python. Christian Wilms. Integriertes Seminar Projekt Bildverarbeitung
CUDA und Python Christian Wilms Integriertes Seminar Projekt Bildverarbeitung Universität Hamburg WiSe 2013/14 12. Dezember 2013 Christian CUDA und Python 1 Gliederung 1 Motivation 2 (GP)GPU 3 CUDA 4 Zusammenfassung
MehrN Bit Binärzahlen. Stelle: Binär-Digit:
N Bit Binärzahlen N Bit Binärzahlen, Beispiel 16 Bit: Stelle: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Binär-Digit: 0 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 Least Significant Bit (LSB) und Most Significant Bit (MSB)
MehrRaytracing auf Desktop PCs Optimizing Cache Usage (Intel Corp.)
Raytracing auf Desktop PCs Optimizing Cache Usage (Intel Corp.) von Martin Stöcker Motivation Geschwindigkeit der Prozessoren verdoppelt sich alle 18 Monate (Moore s Law) Geschwindigkeit des Speichers
MehrVorstellung der SUN Rock-Architektur
Fakultät Informatik Institut für Technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Vorstellung der SUN Rock-Architektur Hauptseminar Ronald Rist Dresden, 14.01.2009
MehrGrundlagen der Rechnerarchitektur. Speicher
Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie
MehrModProg 15-16, Vorl. 13
ModProg 15-16, Vorl. 13 Richard Grzibovski Jan. 27, 2016 1 / 35 Übersicht Übersicht 1 Supercomputing FLOPS, Peak FLOPS Parallelismus Praktische Aspekte 2 Klausur von 2009 2 / 35 Supercomputing: HPC Modellierung
MehrGeneral Purpose Computation on GPUs
General Purpose Computation on GPUs Matthias Schneider, Robert Grimm Universität Erlangen-Nürnberg {matthias.schneider, robert.grimm}@informatik.stud.uni-erlangen.de M. Schneider, R. Grimm 1 Übersicht
MehrEine kurze Einführung in Rechnerarchitektur und Programmierung von Hochleistungsrechnern als zentrales Werkzeug in der Simulation
Eine kurze Einführung in Rechnerarchitektur und Programmierung von Hochleistungsrechnern als zentrales Werkzeug in der Simulation Dr. Jan Eitzinger Regionales Rechenzentrum (RRZE) der Universität Erlangen-Nürnberg
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 07 Übung zur Vorlesung Einsatz und Realisierung von Datenbanksystemen im SoSe16 Moritz Kaufmann
MehrHochleistungsrechnen in Darmstadt: Der Lichtenberg- Hochleistungsrechner. Dr. Andreas Wolf. Gruppenleiter Hochleistungsrechnen Hochschulrechenzentrum
Hochleistungsrechnen in Darmstadt: Der Lichtenberg- Hochleistungsrechner Dr. Andreas Wolf Gruppenleiter Hochleistungsrechnen Hochschulrechenzentrum Überblick Randbedingungen der HPC Beschaffung an der
MehrSpielst du noch oder rechnest du schon?
Spielst du noch oder rechnest du schon? Mit Spielkonsole und Co. zum Supercomputer der Zukunft Fachbereich Elektrotechnik und Informationstechnik Fachhochschule Bielefeld University of Applied Sciences
Mehré Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus
4.2 Caches é Cache kommt aus dem Französischen: cacher (verstecken). é Er kann durch ein Anwendungsprogramm nicht explizit adressiert werden. é Er ist software-transparent, d.h. der Benutzer braucht nichts
MehrGrafikkarten-Architektur
> Grafikkarten-Architektur Parallele Strukturen in der GPU Name: Sebastian Albers E-Mail: s.albers@wwu.de 2 > Inhalt > CPU und GPU im Vergleich > Rendering-Pipeline > Shader > GPGPU > Nvidia Tesla-Architektur
MehrMehrprozessorarchitekturen
Mehrprozessorarchitekturen (SMP, UMA/NUMA, Cluster) Arian Bär 12.07.2004 12.07.2004 Arian Bär 1 Gliederung 1. Einleitung 2. Symmetrische Multiprozessoren (SMP) Allgemeines Architektur 3. Speicherarchitekturen
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 5 Software Engineering für moderne, parallele Plattformen b. Ergänzungen zur Performanz Dr. Victor Pankratius Agenda Das Roofline Model [Williams
MehrAnalyse aktueller Cache-Architekturen hinsichtlich Struktur und Effizienz. Markus Krause
Analyse aktueller Cache-Architekturen hinsichtlich Struktur und Effizienz Markus Krause Dresden, Gliederung 1. Einführung 2. Problemstellung 3. Lösungen a) Miss Rate b) Miss Penalty c) Hit Time 4. Zusammenfassung
MehrSoftware Engineering für moderne, parallele Plattformen
Software Engineering für moderne, parallele Plattformen b. Ergänzungen zur Performanz Dr. Victor Pankratius Dr. Victor Pankratius IPD Lehrstuhl für Programmiersysteme-Tichy KIT die Kooperation von Forschungszentrum
MehrQuiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.
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 32 Bit Adresse 31 3 29... 2 1 SS 212 Grundlagen der Rechnerarchitektur
MehrAlgorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR
#7 Terminchaos Nächste Vorlesungen: 27. 5. Vertretung durch Prof. Fekete 3. 6. Exkursionswoche 10. 6. Vertretung durch N.N. 17. 6. back to normal... Experiment Durchlaufe zwei gleichgrosse Arrays: Sortierte
MehrPG 471: Beyond Graphics. Strömungssimulation in der GPU
Strömungssimulation in der GPU Betreuer: Claus-Peter Alberts, LS VII Dominik Göddeke, LS III (Mathematik) Normale Nutzung von Grafikkarten Normale Nutzung von Grafikkarten STATTDESSEN: GPGPU! Anwendungsfall:
MehrCache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22
Cache Grundlagen Schreibender Cache Zugriff SS 212 Grundlagen der Rechnerarchitektur Speicher 22 Eine einfache Strategie Schreibt man nur in den Cache, werden Cache und darunter liegender Speicher inkonsistent.
MehrProgrammierung. Rückblick. VWA - Programmierung Winter Algorithmus. Programmiersprache. Variable. Zuweisung. Bedingung.
Programmierung 1 Rückblick Algorithmus Programmiersprache Variable Zuweisung Bedingung Schleife (c) Peter Sturm, University of Trier 1 3 Aufgabe: Viele, viele bunte Smarties Rechengeschwindigkeit CPU 5
MehrOrganisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online
Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches
MehrDie Mikroprogrammebene eines Rechners
Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.
MehrCUDA. Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Jürgen Pröll 1
CUDA Jürgen Pröll Multi-Core Architectures and Programming Jürgen Pröll 1 Image-Resize: sequentiell resize() mit bilinearer Interpolation leicht zu parallelisieren, da einzelne Punkte voneinander unabhängig
MehrRechner Architektur. Martin Gülck
Rechner Architektur Martin Gülck Grundlage Jeder Rechner wird aus einzelnen Komponenten zusammengesetzt Sie werden auf dem Mainboard zusammengefügt (dt.: Hauptplatine) Mainboard wird auch als Motherboard
MehrMachine Learning Hardware
Machine Learning Hardware Dominik Scherer 06.11.2017 Seminar Neuste Trends in Big Data Analytics Betreuer: Dr. Julian Kunkel Motivation Maschinelles Lernen in vielen Bereichen angewendet, z.b. Spracherkennung
MehrVirtueller Speicher und Memory Management
Virtueller Speicher und Memory Management Speicher-Paradigmen Programmierer ein großer Adressraum linear adressierbar Betriebssystem eine Menge laufender Tasks / Prozesse read-only Instruktionen read-write
MehrMulticore-Architekturen
Universität Erlangen- Nürnberg Technische Universität München Universität Stuttgart Multicore-Architekturen Vortrag im Rahmen der Ferienakademie 2009 Kurs 1: Programmierkonzepte für Multi-Core Rechner
MehrVorlesung 3: Verschiedenes
Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme Vorlesung 3: Verschiedenes Peter B. Ladkin Vorlesung 3 - Inhalt Busarchitektur Virtuelle Maschine 2 Busarchitektur - das
MehrOpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer
OpenCL Programmiersprachen im Multicore-Zeitalter Tim Wiersdörfer Inhaltsverzeichnis 1. Was ist OpenCL 2. Entwicklung von OpenCL 3. OpenCL Modelle 1. Plattform-Modell 2. Ausführungs-Modell 3. Speicher-Modell
MehrQuantitative Prinzipien im Hardwareentwurf. 1. Small is fast
Quantitative Prinzipien im Hardwareentwurf 1. Small is fast Kleine Hardwareeinheiten schalten in der Regel schneller als größere. Kleine Transistoren bilden an ihren Gates kleinere Kapazitäten die Source-Drain
Mehr3. Rechnerarchitektur
ISS: EDV-Grundlagen 1. Einleitung und Geschichte der EDV 2. Daten und Codierung 3. Rechnerarchitektur 4. Programmierung und Softwareentwicklung 5. Betriebssyteme 6. Internet und Internet-Dienste 3. Rechnerarchitektur
MehrWichtige Rechnerarchitekturen
Wichtige Rechnerarchitekturen Teil 5 INMOS Transputer, CSP/Occam 1 INMOS Transputer 1983 vorgestellt von der Firma INMOS (Bristol) (Entwicklung seit 1978) Der Name Transputer entstand als Kunstwort aus
MehrMemory Models Frederik Zipp
Memory Models Frederik Zipp Seminar: Programmiersprachen für Parallele Programmierung (SS 2010) Fakultät für Informatik - IPD SNELTING LEHRSTUHL PROGRAMMIERPARADIGMEN 1
MehrPaging. Einfaches Paging. Paging mit virtuellem Speicher
Paging Einfaches Paging Paging mit virtuellem Speicher Einfaches Paging Wie bisher (im Gegensatz zu virtuellem Speicherkonzept): Prozesse sind entweder ganz im Speicher oder komplett ausgelagert. Im Gegensatz
MehrInhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9
Inhalt Curriculum 1.4.2 Manfred Wilfling HTBLA Kaindorf 28. November 2011 M. Wilfling (HTBLA Kaindorf) CPUs 28. November 2011 1 / 9 Begriffe CPU Zentraleinheit (Central Processing Unit) bestehend aus Rechenwerk,
MehrVerschiedenes. Peter B. Ladkin
Verschiedenes Peter B. Ladkin ladkin@rvs.uni-bielefeld.de Busarchitektur Virtuelle Maschine Alles sitzt auf dem gleichen Kabel Das Gerät wird nur durch die Adresse unterschieden Speicher Cache Festplatte
MehrVorlesung Rechnerarchitektur. Einführung
Vorlesung Rechnerarchitektur Einführung Themen der Vorlesung Die Vorlesung entwickelt an Hand von zwei Beispielen wichtige Prinzipien der Prozessorarchitektur und der Speicherarchitektur: MU0 Arm Speicher
MehrAlgorithm Engineering XXL
PG 503 XAVER Algorithm Engineering XXL Veranstalter: Markus Chimani Carsten Gutwenger Karsten Klein LS 11: Algorithm Engineering Prof. Dr. Petra Mutzel Algorithm Engineering Klassische Algorithmik einfaches
MehrGPGPU Basiskonzepte. von Marc Kirchhoff GPGPU Basiskonzepte 1
GPGPU Basiskonzepte von Marc Kirchhoff 29.05.2006 GPGPU Basiskonzepte 1 Inhalt Warum GPGPU Streams, Kernels und Prozessoren Datenstrukturen Algorithmen 29.05.2006 GPGPU Basiskonzepte 2 Warum GPGPU? Performance
MehrEvaluation. Einleitung. Implementierung Integration. Zusammenfassung Ausblick
Christopher Schleiden Bachelor Kolloquium 15.09.2009 Einleitung Evaluation Implementierung Integration Zusammenfassung Ausblick Einleitung laperf Lineare Algebra Bibliothek für C++ Möglichkeit zur Integration
MehrErweiterung von Adressraum und Bit Tiefe
Erweiterung von Adressraum und Bit Tiefe Erweiterung des vorigen Beispiels ist offensichtlich: Vergrößerung des Adressraums (in der Größenordnung 2 n ): Füge eine Adressleitung hinzu und verdoppele die
MehrGrundlagen der Informatik
Grundlagen der Informatik Logische und mathematische Grundlagen Digitale Daten Computerprogramme als Binärdaten von Neumann-Rechnerarchitektur Einführung in Maschinen-Code Speicherorganisation Betriebssysteme
MehrAlgorithmen für die Speicherhierarchie
Lineare Algebra: untere Schranken Lehrstuhl für Effiziente Algorithmen Fakultät für Informatik Technische Universität München Vorlesung Sommersemester 2009 Gliederung 1 2 Zusätzliche Überlegungen Erinnerung
MehrCUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg
CUDA Seminar Multi-Core Architectures and Programming 1 Übersicht Einleitung Architektur Programmierung 2 Einleitung Computations on GPU 2003 Probleme Hohe Kenntnisse der Grafikprogrammierung nötig Unterschiedliche
MehrParallel Computing. Einsatzmöglichkeiten und Grenzen. Prof. Dr. Nikolaus Wulff
Parallel Computing Einsatzmöglichkeiten und Grenzen Prof. Dr. Nikolaus Wulff Parallel Architekturen Flynn'sche Klassifizierung: SISD: single Instruction, single Data Klassisches von-neumann sequentielles
MehrVorstellung (Wdh. für die Neuen )
Vorstellung (Wdh. für die Neuen ) Mein Name: Christian Mandery Studiengang: Diplom-Informatik im 4. Semester (ich höre also im Moment selbst noch Technische Informatik 2) E-Mail (bei Fragen und zum Senden
MehrCPU-Caches. Christian Duße. Seminar Effiziente Programmierung in C
CPU-Caches Christian Duße Seminar Effiziente Programmierung in C Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
MehrDer von Neumann Computer
Der von Neumann Computer Grundlagen moderner Computer Technologie 1 Der moderne Computer ein weites Spektrum Typ Preis Anwendungsbeispiel embeded Computer 10-20 $ in Autos, Uhren,... Spielcomputer 100-200$
MehrEntwicklung von Partitionierungsstrategien im Entwurf dynamisch rekonfigurierbarer Systeme
Entwicklung von Partitionierungsstrategien im Entwurf dynamisch rekonfigurierbarer Systeme R. Merker, Technische Universität Dresden, Fakultät ET und IT J. Kelber, Fachhochschule Schmalkalden, ET Gliederung
Mehr1 Organisationsaspekte RISC- und CISC-Prozessoren Ausnutzen von Cache-Effekten
McFarling [1989] konnte Cache Misses um 75% in 8KB direkt abbildenden Caches durch Softwaremaßnahmen senken. Instruktionen Umordnen im Speicher, um Conflict-Misses zu reduzieren Profiling : spezielle Konfliktvermeidungsmaßnahmen
MehrPraktische Übungen zu Computertechnik 2. Versuchsprotokoll
Praktische Übungen zu Computertechnik 2 Versuchsprotokoll Versuch: C2 Parallelrechner Versuchsdatum und -zeit: Donnerstag, 03. Juni 2010, 10-13 Uhr Betreuer: Adrian Knoth Name, Studiengang, Mat.-Nr.: Ralf
MehrDie Sandy-Bridge Architektur
Fakultät Informatik - Institut für Technische Informatik - Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Die Sandy-Bridge Architektur René Arnold Dresden, 12. Juli 2011 0. Gliederung 1.
MehrVorlesung: Virtualisierung und Rechenzentrumsinfrastrukturen. Lars Göbel & Christian Müller VL04: Einführung in die Virtualisierung
Vorlesung: Lars Göbel & Christian Müller VL04: Einführung in die Virtualisierung Themenüberblick Virtualisierung VL 02: Einführung in die Virtualisierung (heute) VL 06: VL 08: XaaS VL 09: PaaS + SaaS VL
MehrCPU, GPU und FPGA. CPU, GPU und FPGA Maximilian Bandle, Bianca Forkel 21. November 2017
CPU, GPU und FPGA, Bianca Forkel 21. November 2017 CPU, GPU und FPGA Inhalt CPU: Central Processing Unit GPU: Graphical Processing Unit FPGA: Field Programmable Gate Array 2 CPU Central Processing Unit
MehrEntwurf eines FPGA-Cores zur Simulationsbeschleunigung zeitkontinuierlicher Modelle im HiL Kontext
Entwurf eines FPGA-Cores zur Simulationsbeschleunigung zeitkontinuierlicher Modelle im HiL Kontext Till Fischer 03.11.2011 FZI Forschungszentrum Informatik Embedded Systems & Sensors Engineering (ESS)
MehrSeminar: Multi-Core Architectures and Programming
Seminar: Multi-Core Architectures and Programming Parallelisierung des Viola-Jones Algorithmus auf Tilera Hardware-Software-Co-Design Universität Erlangen-Nürnberg 1 Übersicht Einleitung Erste Versuche
MehrDas Motherboard (Hauptplatine) beinhaltet Prozessor (CPU), Speicher (RAM) Anschlüsse für interne Disks, Steckkarten, Anschlüsse nach aussen
Das Motherboard (Hauptplatine) beinhaltet Prozessor (CPU), Speicher (RAM) Anschlüsse für interne Disks, Steckkarten, Anschlüsse nach aussen Damit man grosse Zahlen abkürzen kann, behilft man sich dieser
MehrParallelverarbeitung
Parallelverarbeitung WS 2015/16 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 18. Januar 2016 Betriebssysteme / verteilte Systeme Parallelverarbeitung
MehrNeue Dual-CPU Server mit Intel Xeon Scalable Performance (Codename Purley/Skylake-SP)
Neue Dual-CPU Server mit Intel Xeon Scalable Performance (Codename Purley/Skylake-SP) @wefinet Werner Fischer, Thomas-Krenn.AG Webinar, 17. Oktober 2017 Intel Xeon Scalable Performance _ Das ist NEU: Neue
MehrDaten Bank. 6. Vorlesung
Daten Bank 6. Vorlesung Klausur PRG-2 Klausur am Freitag den 25. Juli Start: 9:00 Uhr Wo: Hörsaalgebäude Bockenheim Vorlesungsräume HIV, HVI und HIII Studierendenausweis mitbringen! Dr. Karsten Tolle PRG2
MehrKonzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P
SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 3(Musterlösung) 2014-05-05 bis 2014-05-09 Aufgabe 1: Polling vs Interrupts (a) Erläutern Sie
MehrOrganisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download
Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches
MehrVorlesung 1 Medizininformatik. Sommersemester 2017
Vorlesung 1 Medizininformatik Begrüssung und Einführung Medizininformatik () Vorlesung (2 SWS) Montags 8:30-10:00 Übung (1 SWS) 10:15-11:00 1. 24.4 1.5 2. 8.5 3. 15.5 4. 22.5 Computer Architecture Begrüssung,
Mehr