Paralleler Cuckoo-Filter. Seminar: Implementierungstechniken für Hauptspeicherdatenbanksysteme Jeremias Neth München, 21.
|
|
- Eduard Schmitz
- vor 5 Jahren
- Abrufe
Transkript
1 Paralleler Cuckoo-Filter Seminar: Implementierungstechniken für Hauptspeicherdatenbanksysteme Jeremias Neth München, 21. November
2 Paralleler Cuckoo-Filter Cuckoo-Hashtabelle Serieller Cuckoo-Filter Algorithmus Performance Mehrkern Cuckoo-Filter CUDA Cuckoo-Filter 2
3 Cuckoo-Hashtabelle Berechnung des Index in einer Hashtabelle (Quelle: Wikipedia) 3
4 Cuckoo-Hashtabelle Berechnung des Index in einer Hashtabelle Verwendung von zwei Hashfunktionen (Quelle: Wikipedia) 4
5 Cuckoo-Hashing Einfügen von x in eine Cuckoo-Hashtabelle: h1(x) = 3 h2(x) = 7 5
6 Cuckoo-Hashing Einfügen von x in eine Cuckoo-Hashtabelle: h1(x) = 3 h2(x) = 7 6
7 Cuckoo-Hashing Einfügen von x in eine Cuckoo-Hashtabelle: h1(x) = 3 h2(x) = 7 7
8 Cuckoo-Hashing Einfügen von x in eine Cuckoo-Hashtabelle: h1(x) = 3 h2(x) = 7 8
9 Cuckoo-Hashing Einfügen von x in eine Cuckoo-Hashtabelle: h1(x) = 3 h2(x) = 7 9
10 Cuckoo-Filter Probalistische Datenstruktur Kann mit hoher Wahrscheinlichkeit sagen ob ein Gegenstand in den Filter eingefügt wurde, ohne false negatives 10
11 Cuckoo-Filter Probalistische Datenstruktur Kann mit hoher Wahrscheinlichkeit sagen ob ein Gegenstand in den Filter eingefügt wurde, ohne false negatives Geringer Speicherplatzbedarf 11
12 Cuckoo-Filter Probalistische Datenstruktur Kann mit hoher Wahrscheinlichkeit sagen ob ein Gegenstand in den Filter eingefügt wurde, ohne false negatives Geringer Speicherplatzbedarf Alternative zum Bloom-Filter 12
13 Cuckoo-Filter Probalistische Datenstruktur Kann mit hoher Wahrscheinlichkeit sagen ob ein Gegenstand in den Filter eingefügt wurde, ohne false negatives Geringer Speicherplatzbedarf Alternative zum Bloom-Filter (Praktisch besser) Unterstützt das dynamische Löschen von Einträgen 13
14 Cuckoo-Filter Probalistische Datenstruktur Kann mit hoher Wahrscheinlichkeit sagen ob ein Gegenstand in den Filter eingefügt wurde, ohne false negatives Geringer Speicherplatzbedarf Alternative zum Bloom-Filter (Praktisch besser) Unterstützt das dynamische Löschen von Einträgen Schnellere Lookup Performance 14
15 Cuckoo-Filter Probalistische Datenstruktur Kann mit hoher Wahrscheinlichkeit sagen ob ein Gegenstand in den Filter eingefügt wurde, ohne false negatives Geringer Speicherplatzbedarf Alternative zum Bloom-Filter (Praktisch besser) Unterstützt das dynamische Löschen von Einträgen Schnellere Lookup Performance Effizientere Platznutzung bei Anwendungen mit niedrigen false-positive-rates (<3%) 15
16 Cuckoo-Filter Cuckoo-Hashtabelle 16
17 Cuckoo-Filter Cuckoo-Hashtabelle Vier Einträge je Bucket 17
18 Cuckoo-Filter Cuckoo-Hashtabelle Vier Einträge je Bucket partial-key cuckoo hashing 18
19 Cuckoo-Filter Cuckoo-Hashtabelle Vier Einträge je Bucket partial-key cuckoo hashing Abspeichern von Fingerabdrücken 19
20 Cuckoo-Filter Cuckoo-Hashtabelle Vier Einträge je Bucket partial-key cuckoo hashing Abspeichern von Fingerabdrücken Alternativer Bucket durch Index und Fingerabdruck bestimmbar 20
21 Cuckoo-Filter Cuckoo-Hashtabelle Vier Einträge je Bucket partial-key cuckoo hashing Abspeichern von Fingerabdrücken Alternativer Bucket durch Index und Fingerabdruck bestimmbar 21
22 Cuckoo-Filter Cuckoo-Hashtabelle Vier Einträge je Bucket Fingerabdrucklänge: 16-bit 95% Fillrate 0,01% False Positive Rate 22
23 Cuckoo-Filter Einfügen eines Gegenstand in den Filter 23
24 Cuckoo-Filter Lookup eines Gegenstand in dem Filter 24
25 Cuckoo-Filter Performance 25
26 Mehrkern Cuckoo-Filter Algorithmus analog zur seriellen Implementierung 26
27 Mehrkern Cuckoo-Filter Einfügen eines Gegenstand in den Filter 27
28 Mehrkern Cuckoo-Filter Einfügen eines Gegenstand in den Filter 28
29 Mehrkern Cuckoo-Filter Algorithmus analog zur seriellen Implementierung Verteilung des abzuarbeitenden Datensatzes auf mehrere Threads mit std::thread 29
30 Mehrkern Cuckoo-Filter Algorithmus analog zur seriellen Implementierung Verteilung des abzuarbeitenden Datensatzes auf mehrere Threads mit std::thread Absicherung des kritischen Bereichs durch Locks mit std::mutex 30
31 Mehrkern Cuckoo-Filter Algorithmus analog zur seriellen Implementierung Verteilung des abzuarbeitenden Datensatzes auf mehrere Threads mit std::thread Absicherung des kritischen Bereichs durch Locks mit std::mutex Problem: Eine Lock: schlechte Performance Viele Locks: viel Overhead 31
32 Mehrkern Cuckoo-Filter Algorithmus analog zur seriellen Implementierung Verteilung des abzuarbeitenden Datensatzes auf mehrere Threads mit std::thread Absicherung des kritischen Bereichs durch Locks mit std::mutex Problem: Eine Lock: schlechte Performance Viele Locks: viel Overhead A = Alle Threads T versuchen unterschiedliche Locks s S zur gleichen Zeit zu sperren 32
33 Mehrkern Cuckoo-Filter A = Alle Threads T versuchen ein unterschiedliches Lock sϵs zur gleichen Zeit zu sperren Beispiel: 4 Threads und 256 Locks: 96.6%, Speicherbedarf ~ 10 kb 33
34 Mehrkern Cuckoo-Filter Performance Speedup: 1.5x (insert), 2.9x (probe) 34
35 Mehrkern Cuckoo-Filter Mögliche Verbesserungen: Statt std::mutex, POSIX_MUTEX unter Linux oder CRITICAL_SECTION unter Windows (Bis zu 2x schneller als std::mutex) Nur einem Thread Schreibzugriff geben. 35
36 Mehrkern Cuckoo-Filter Mögliche Verbesserungen: Statt std::mutex: POSIX_MUTEX unter Linux oder CRITICAL_SECTION unter Windows (Bis zu 2x schneller als std::mutex) Nur einem Thread Schreibzugriff geben. Mehr Kerne 36
37 Mehrkern Cuckoo-Filter Mögliche Verbesserungen: Statt std::mutex: POSIX_MUTEX unter Linux oder CRITICAL_SECTION unter Windows (Bis zu 2x schneller als std::mutex) Nur einem Thread Schreibzugriff geben. Mehr Kerne Grafikkarte stellt viel mehr Rechnerkerne zur Verfügung (Bsp: GTX 970, 1664) 37
38 CUDA Cuckoo-Filter Compute Unified Device Architecture Aufteilung des Programms für Host (CPU) und Device (GPU) Getrennter Speicher 38
39 CUDA Cuckoo-Filter Compute Unified Device Architecture Aufteilung des Programms für Host (CPU) und Device (GPU) Getrennter Speicher Serieller Part auf CPU, Paralleler Part auf GPU Aufteilung der Aufgabe in einzelne Threads 39
40 CUDA Cuckoo-Filter Compute Unified Device Architecture Aufteilung des Programms für Host (CPU) und Device (GPU) Getrennter Speicher Serieller Part auf CPU, Paralleler Part auf GPU Aufteilung der Aufgabe in einzelne Threads (Quelle: Wikipedia) 40
41 CUDA Cuckoo-Filter Compute Unified Device Architecture Aufteilung des Programms für Host (CPU) und Device (GPU) Getrennter Speicher Serieller Part auf CPU, Paralleler Part auf GPU Aufteilung der Aufgabe in einzelne Threads SIMT: Single Instruction Multiple Threads 32 Threads werden zu einem Warp zusammengefasst (Quelle: Wikipedia) 41
42 CUDA Cuckoo-Filter Compute Unified Device Architecture Aufteilung des Programms für Host (CPU) und Device (GPU) Getrennter Speicher Serieller Part auf CPU, Paralleler Part auf GPU Aufteilung der Aufgabe in einzelne Threads SIMT: Single Instruction Multiple Threads 32 Threads werden zu einem Warp zusammengefasst Bis zu 64 Warps residieren gleichzeitig auf einer Streaming Multiprocessorunit (SM) (Quelle: Wikipedia) 42
43 CUDA Cuckoo-Filter Compute Unified Device Architecture Aufteilung des Programms für Host (CPU) und Device (GPU) Getrennter Speicher Serieller Part auf CPU, Paralleler Part auf GPU Aufteilung der Aufgabe in einzelne Threads SIMT: Single Instruction Multiple Threads 32 Threads werden zu einem Warp zusammengefasst Bis zu 64 Warps residieren gleichzeitig auf einer Streaming Multiprocessorunit (SM) Aber nur 8 werden pro SM gleichzeitig ausgeführt (Quelle: Wikipedia) 43
44 CUDA Cuckoo-Filter Host 44
45 CUDA Cuckoo-Filter Host Kopiere Datensatz in Device Speicher 45
46 CUDA Cuckoo-Filter Host Kopiere Datensatz in Device Speicher Starte Kernel Einfügen mit benötigter Anzahl an Threads, aufgeteilt in Blöcke 46
47 CUDA Cuckoo-Filter Host Kopiere Datensatz in Device Speicher Starte Kernel Einfügen mit benötigter Anzahl an Threads, aufgeteilt in Blöcke Device Mappe momentanen Thread auf Items 47
48 CUDA Cuckoo-Filter Host Kopiere Datensatz in Device Speicher Starte Kernel Einfügen mit benötigter Anzahl an Threads, aufgeteilt in Blöcke Device Mappe momentanen Thread auf Items Insert-Algorithmus analog zur Mehrkern- Implementierung 48
49 CUDA Cuckoo-Filter Host Kopiere Datensatz in Device Speicher Starte Kernel Einfügen mit benötigter Anzahl an Threads, aufgeteilt in Blöcke Device Mappe momentanen Thread auf Items Insert-Algorithmus analog zur Mehrkern- Implementierung Andere Absicherung des kritischen Bereichs (~32M Semaphoren bei 1664 Threads für ähnlich viele Kollisionen wie bei 4 Threads) 49
50 CUDA Cuckoo-Filter Device Andere Absicherung des kritischen Bereichs AtomicCompareAndSwap 50
51 CUDA Cuckoo-Filter Device Andere Absicherung des kritischen Bereichs AtomicCompareAndSwap Angepasster Algorithmus: 51
52 CUDA Cuckoo-Filter Device Andere Absicherung des kritischen Bereichs AtomicCompareAndSwap Angepasster Algorithmus: - Finde Kandidatenbucket 52
53 CUDA Cuckoo-Filter Device Andere Absicherung des kritischen Bereichs AtomicCompareAndSwap Angepasster Algorithmus: - Finde Kandidatenbucket - AtomicCAS(Kandidatenbucket, 0, Fingerprint) - Ergebnis == 0? 53
54 CUDA Cuckoo-Filter Device Andere Absicherung des kritischen Bereichs AtomicCompareAndSwap Angepasster Algorithmus: - Finde Kandidatenbucket - AtomicCAS(Kandidatenbucket, 0, Fingerprint) - Ergebnis == 0? - Ja, Erfolg 54
55 CUDA Cuckoo-Filter Device Andere Absicherung des kritischen Bereichs AtomicCompareAndSwap Angepasster Algorithmus: - Finde Kandidatenbucket - AtomicCAS(Kandidatenbucket, 0, Fingerprint) - Ergebnis == 0? - Ja, Erfolg - Nein, verfahre wie wenn kein Kandidatenbucket gefunden wurde 55
56 CUDA Cuckoo-Filter Performance? 56
57 CUDA Cuckoo-Filter Performance Speedup: 12.7x (insert), 13.4x (probe) 57
58 CUDA Cuckoo-Filter Mögliche Verbesserungen: Wahl einer schnelleren Hashfunktion (Abhängig von der Hardware) 58
59 CUDA Cuckoo-Filter Mögliche Verbesserungen: Wahl einer schnelleren Hashfunktion (Abhängig von der Hardware) Caching mit Shared Memory 59
60 CUDA Cuckoo-Filter Mögliche Verbesserungen: Wahl einer schnelleren Hashfunktion (Abhängig von der Hardware) Caching mit Shared Memory Anderer Algorithmus? (Auflösen des Cuckoo-Graphen) 60
CUDA. 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
MehrHash-Verfahren. Prof. Dr. T. Kudraß 1
Hash-Verfahren Prof. Dr. T. Kudraß 1 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit Schlüsselwert k.
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
MehrHash-Verfahren. Einführung
Hash-Verfahren Prof. Dr. T. Kudraß 1 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit Schlüsselwert k.
MehrPraxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern
Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern Institut für Betriebssysteme und Rechnerverbund TU Braunschweig 25.10., 26.10.
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
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:
MehrGPGPU WITH OPENCL. Praktikum Parallele Rechnerarchitekturen, 2015w Franz Richter-Gottfried
GPGPU WITH OPENCL Praktikum Parallele Rechnerarchitekturen, 2015w Franz Richter-Gottfried INFRASTRUCTURE Enqueue interactive job srun --gres --pty bash Graphics cards available for tesla_k20,
MehrTeil VII. Hashverfahren
Teil VII Hashverfahren Überblick 1 Hashverfahren: Prinzip 2 Hashfunktionen 3 Kollisionsstrategien 4 Aufwand 5 Hashen in Java Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 7 1 Hashverfahren:
MehrLiteratur: Jeffrey D. Ullman: Principles of Database Systems, 2 nd Edition 1982, Kapitel 2.2
Hashorganisation HASHORGANISATION Literatur: Jeffrey D. Ullman: Principles of Database Systems, 2 nd Edition 982, Kapitel 2.2 Die Sätze der Datei werden auf eine Menge von Buckets aufgeteilt. Jedes Bucket
MehrHashtabellen. Hashverfahren, was ist das eigentlich?
Hashverfahren, was ist das eigentlich? Das Hashverfahren ist ein Algorithmus zum Suchen von Datenobjekten in großen Datenmengen. Es basiert auf der Idee, dass eine mathematische Funktion die Position eines
MehrOrganisationsformen der Speicherstrukturen
Organisationsformen der Speicherstrukturen Bäume und Hashing 1 Motivation Ablage von Daten soll einfachen, schnellen und inhaltsbezogenen Zugriff ermöglichen (z.b. Zeige alle Schüler des Lehrers X am heutigen
Mehr5.8.2 Erweiterungen Dynamische Hash-Funktionen (mit variabler Tabellengröße)?
5.8.2 Erweiterungen Dynamische Hash-Funktionen (mit variabler Tabellengröße)? Ladefaktor: α, n aktuelle Anzahl gespeicherter Werte m Tabellengröße. Einfacher Ansatz: rehash() a z c h s r b s h a z Wenn
MehrCUDA. Axel Jena, Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Axel Jena, Jürgen Pröll 1
CUDA Axel Jena, Jürgen Pröll Multi-Core Architectures and Programming Axel Jena, Jürgen Pröll 1 Warum Tesla? Traditionelle Graphikkarten Getrennte Prozessoren für Vertex- / Pixelberechnungen - Nachteil:
MehrLEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610
LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610 Dominik Weinrich dominik.weinrich@tu-dresden.de Dresden, 30.11.2017 Gliederung Motivation Aufbau und Hardware
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 Offenes Hashing) Prof. Dr. Susanne Albers Hashing: Allgemeiner Rahmen Schlüsselmenge S Universum U aller möglichen Schlüssel Hashfunktion h 0,,m-1
MehrSeminar Datenbanken Martin Gerstmann
Seminar Datenbanken Martin Gerstmann Gliederung 1. Ziele 2. Arten 2.1. erweiterbares Hashing 2.2. lineares Hashing 2.3. virtuelles Hashing 3. Bewertung 1. Ziele wachsende/schrumpfende Datenmengen verwalten
MehrGrundlagen von CUDA, Sprachtypische Elemente
Grundlagen von CUDA, Sprachtypische Elemente Stefan Maskanitz 03.07.2009 CUDA Grundlagen 1 Übersicht 1. Einleitung 2. Spracheigenschaften a. s, Blocks und Grids b. Speicherorganistion c. Fehlerbehandlung
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11 Hashverfahren: Allgemeiner Rahmen) Prof. Dr. Susanne Albers Das Wörterbuch-Problem (1) Das Wörterbuch-Problem (WBP) kann wie folgt beschrieben
MehrInformatik II Prüfungsvorbereitungskurs
Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 9 (25.5.2016) Hashtabellen II, Binäre Suchbäume I Algorithmen und Komplexität Hashtabellen mit Chaining Jede Stelle in der Hashtabelle
MehrRheinisch-Westfälische Technische Hochschule Aachen. Seminararbeit
Rheinisch-Westfälische Technische Hochschule Aachen Seminararbeit Analyse von General Purpose Computation on Graphics Processing Units Bibliotheken in Bezug auf GPU-Hersteller. Gregori Kerber Matrikelnummer
Mehr3. Übung Algorithmen I
INSTITUT FÜR THEORETISCHE INFORMATIK 1 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Theoretische www.kit.edu Informatik Hashtabellen:
MehrEine kurze Geschichte der Grafikkarten
3.1 Einführung Eine kurze Geschichte der Grafikkarten ursprünglich: Graphics Card steuert Monitor an Mitte 80er: Grafikkarten mit 2D-Beschleunigung angelehnt an Arcade- und Home-Computer frühe 90er: erste
Mehr13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)
AVL-Bäume: Ausgabe aller Elemente in O(n) Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) Frage: Kann man Einfügen, Löschen und Suchen in O(1) Zeit? 1 Hashing einfache Methode
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 9 (28.5.2014) Hashtabellen III Algorithmen und Komplexität Offene Adressierung : Zusammenfassung Offene Adressierung: Alle Schlüssel/Werte
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
MehrCUDA. Philip Höhlein, Nils Werner Supervision: R. Membarth, P. Kutzer, F. Hannig. Hardware-Software-Co-Design Universität Erlangen-Nürnberg
CUDA Philip Höhlein, Nils Werner Supervision: R. Membarth, P. Kutzer, F. Hannig Hardware-Software-Co-Design Universität Erlangen-Nürnberg Philip Höhlein, Nils Werner 1 Übersicht Entwicklungsumgebung RSA-Faktorisierer
MehrMuster. Informatik 3 (Februar 2004) Name: Matrikelnummer: Betrachten Sie den folgenden Suchbaum. A G H J K M N
2 von 15 Aufgabe 1: Suchbäume (14 ) Betrachten Sie den folgenden Suchbaum. A B C D E F G H I J K L M N O P R (a) (1 Punkt ) Geben Sie die Höhe des Knotens F an. (b) (1 Punkt ) Geben Sie die Tiefe des Knotens
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 8 (14.5.2018) Hashtabellen III Algorithmen und Komplexität Hashtabellen mit Chaining Jede Stelle in der Hashtabelle zeigt auf eine verkette
MehrHashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung
Übersicht Datenstrukturen und Algorithmen Vorlesung 13: 1 Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 2 Effizienz
MehrHashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung
Übersicht Datenstrukturen und Algorithmen Vorlesung 13: 1 Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group https://moves.rwth-aachen.de/teaching/ss-18/dsal/ 2 Effizienz
MehrEinführung. GPU-Versuch. Andreas Schäfer Friedrich-Alexander-Universität Erlangen-Nürnberg
GPU-Versuch andreas.schaefer@cs.fau.de Friedrich-Alexander-Universität Erlangen-Nürnberg Praktikum Parallele Rechnerarchitekturen SS2014 Outline 1 Einführung 2 Outlook 1 Einführung 2 Eine kurze Geschichte
MehrGliederung. Was ist CUDA? CPU GPU/GPGPU CUDA Anwendungsbereiche Wirtschaftlichkeit Beispielvideo
Gliederung Was ist CUDA? CPU GPU/GPGPU CUDA Anwendungsbereiche Wirtschaftlichkeit Beispielvideo Was ist CUDA? Nvidia CUDA ist eine von NvidiaGPGPU-Technologie, die es Programmierern erlaubt, Programmteile
MehrVolumenrendering mit CUDA
Volumenrendering mit CUDA Arbeitsgruppe Visualisierung und Computergrafik http://viscg.uni-muenster.de Überblick Volumenrendering allgemein Raycasting-Algorithmus Volumen-Raycasting mit CUDA Optimierung
MehrGPGPU-Programmierung
12 GPGPU-Programmierung 2013/04/25 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken ist im Allgemeinen nicht erlaubt. Motivation (1) General Purpose Computing on
MehrMasterpraktikum Scientific Computing
Masterpraktikum Scientific Computing High-Performance Computing Thomas Auckenthaler Wolfgang Eckhardt Prof. Dr. Michael Bader Technische Universität München, Germany Outline Organisatorisches Entwicklung
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
MehrGPGPU-Programmierung
12 GPGPU-Programmierung 2014/04/29 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken ist im Allgemeinen nicht erlaubt. Motivation (1) General Purpose Computing on
MehrÜbungsklausur Algorithmen I
Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) Nennen Sie zwei Konzepte, die Algorithm Engineering im Gegensatz zu theoretischer
MehrAlgorithmen I. Tutorium 1-4. Sitzung. Dennis Felsing
Algorithmen I Tutorium 1-4. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-09 Überblick 1 Verkettete Listen 2 Unbeschränkte Felder 3 Amortisierte Laufzeitanalyse
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
MehrHash-basierte Dateien
Hash-basierte Dateien Hashing Hash-Verfahren ermöglichen es, die Adresse eines Datensatzes basierend auf dem Wert eines Feldes zu finden Idee: Verwendung einer Hashfunktion, die den Wert eines Suchschlüssels
Mehr4. Hashverfahren. geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D. Menge A von Speicheradressen; oft: A = {0,..., m 1}
105 4. Hashverfahren geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D Menge A von Speicheradressen; oft: A = {0,..., m 1} jedes Speicherverfahren realisiert h : D A mögliche Implementierungen
Mehr1 Einleitung Ziele der Arbeit Aufbau der Arbeit... 2
Bachelorarbeit Skalierbare Hashtabellen für moderne Multi-Core-Systeme Rico Ahlbäumer 7. März 2018 Gutachter: Prof. Dr. Jens Teubner MSc. Jan Mühlig Technische Universität Dortmund Fakultät für Informatik
MehrMasterpraktikum Scientific Computing
Masterpraktikum Scientific Computing High-Performance Computing Thomas Auckenthaler Wolfgang Eckhardt Technische Universität München, Germany Outline Entwicklung General Purpose GPU Programming (GPGPU)
MehrKollision Hashfunktion Verkettung Offenes Hashing Perfektes Hashing Universelles Hashing Dynamisches Hashing. 4. Hashverfahren
4. Hashverfahren geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D Menge A von Speicheradressen; oft: A = {0,..., m 1} jedes Speicherverfahren realisiert h : D A mögliche Implementierungen von
MehrGrundlagen: Algorithmen und Datenstrukturen
Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 011 Übungsblatt 6. August 011 Grundlagen: Algorithmen und Datenstrukturen
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative
MehrProgrammiertechnik II
Programmiertechnik II Hash-Tabellen Überblick Hashfunktionen: Abbildung von Schlüsseln auf Zahlen Hashwert: Wert der Hashfunktion Hashtabelle: Symboltabelle, die mit Hashwerten indiziert ist Kollision:
Mehr2 Rechnerarchitekturen
2 Rechnerarchitekturen Rechnerarchitekturen Flynns Klassifikation Flynnsche Klassifikation (Flynn sche Taxonomie) 1966 entwickelt, einfaches Modell, bis heute genutzt Beschränkung der Beschreibung auf
MehrParalleles Rechnen. (Architektur verteilter Systeme) von Thomas Offermann Philipp Tommek Dominik Pich
Paralleles Rechnen (Architektur verteilter Systeme) von Thomas Offermann Philipp Tommek Dominik Pich Gliederung Motivation Anwendungsgebiete Warum paralleles Rechnen Flynn's Klassifikation Theorie: Parallel
MehrMulti-Core Architectures and Programming. Bilateral Grid Filter
Multi-Core Architectures and Programming Bilateral Grid Filter - Parallelisierung mit CUDA - C. Kugler und E. Sert Inhalt Motivation Bilateral Filter (Exkurs) Bilateral Grid Filter Portierung auf Grafikkarte
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / Vorlesung 5, Donnerstag, 21.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 5, Donnerstag, 21. November 2013 (Wie baut man eine Hash Map, Universelles Hashing)
MehrDatenstrukturen und Algorithmen. Vorlesung 10
Datenstrukturen und Algorithmen Vorlesung 10 Hashtabelle als Erinnerung Hashtabellen sind Tabellen (Arrays), wo aber die Elemente nicht von links nach rechts eingefügt werden, wie bei typischen Arrays
MehrGrundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
MehrParallelisierung von Modellprädiktiver Regelung auf CUDA-Hardware
Parallelisierung von Modellprädiktiver Regelung auf CUDA-Hardware Thomas Jahn Universität Bayreuth 6 Februar 20 Zeitdiskretes Modell Modellfunktion Diskrete Dynamik eines Kontrollsystems ist durch Φ :
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
MehrOpenCL (Cell B. E., PS3) Multicore Architectures and Programming
OpenCL (Cell B. E., PS3) Multicore Architectures and Programming Apelt, Nicolas Zoellner, Christian Hardware-Software-Co-Design Universität Erlangen-Nürnberg Apelt, Nicolas Zoellner, Christian 1 Übersicht
MehrProgrammiertechnik II
Hash-Tabellen Überblick Hashfunktionen: Abbildung von Schlüsseln auf Zahlen Hashwert: Wert der Hashfunktion Hashtabelle: Symboltabelle, die mit Hashwerten indiziert ist Kollision: Paar von Schlüsseln mit
MehrImplementierung zweier Algorithmen mittels OpenCL auf Grafikkarten
Implementierung zweier Algorithmen mittels OpenCL auf Grafikkarten Tobias Schwarzer, Michael Theil Hardware-Software-Co-Design Universität Erlangen-Nürnberg Tobias.Schwarzer@e-technik.uni-erlangen.de,
MehrYilmaz, Tolga MatNr: Mesaud, Elias MatNr:
Yilmaz, Tolga MatNr: 157317 Mesaud, Elias MatNr: 151386 1. Aufbau und Funktionsweise einer Grafikkarte 2. CPU vs. GPU 3. Software 4. Beispielprogramme Kompilierung und Vorführung 5. Wo wird Cuda heutzutage
MehrGPU-Programmierung: OpenCL
Seminar: Multicore Programmierung Sommerstemester 2009 04.06.2009 Inhaltsverzeichnis 1 GPU-Programmierung von Grafikkarten von GPU-Computing 2 Architektur Spracheigenschaften Vergleich mit CUDA Beispiel
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil Hash-Verfahren Version vom: 18. November 2016 1 / 28 Vorlesung 9 18. November 2016
MehrTeil 1: Suchen. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Suchen 1-1
Teil 1: Suchen Problemstellung Elementare Suchverfahren Hashverfahren Idee Hashfunktion Hashverfahren mit Verkettung Offene Hashverfahren Dynamische Hashverfahren Binäre Suchbäume Ausgeglichene Bäume B-Bäume
MehrKlausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min
TU Ilmenau, Fakultät für Informatik und Automatisierung FG Komplexitätstheorie und Effiziente Algorithmen Univ.-Prof. Dr. M. Dietzfelbinger, Dipl.-Ing. C. Mattern Klausur Algorithmen und Datenstrukturen
Mehrs(x, i) = i h 2 (x), i N 0
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 5 Prof. Dr. Helmut Seidl, S. Pott,
MehrGPGPU mit NVIDIA CUDA
01.07.12 GPGPU mit NVIDIA CUDA General-Purpose on Formatvorlagecomputing des Graphics Processing durch Units Untertitelmasters mit KlickenCompute bearbeiten NVIDIA Unified Device Architecture Gliederung
MehrKapitel 4. Streuen. (h K injektiv) k 1 k 2 K = h(k 1 ) h(k 2 )
Kapitel 4 Streuen Wir behandeln nun Ipleentationen ungeordneter Wörterbücher, in denen die Schlüssel ohne Beachtung ihrer Sortierreihenfolge gespeichert werden dürfen, verlangen aber, dass es sich bei
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
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Hashing Maike Buchin 2. und 4.5.2017 Motivation häufig werden Daten anhand eines numerischen Schlüssel abgespeichert Beispiele: Studenten der RUB nach Matrikelnummer Kunden einer
MehrStream Processing II
Stream Processing II K-Buckets Histogram Histogramme sind graphische Darstellungen der Verteilung von numerischen Werten Werden durch Intervalle, die sich nicht überlappen, dargestellt Ein Intervall wird
MehrGrundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
MehrAlgorithmen und Datenstrukturen Hashverfahren
Algorithmen und Datenstrukturen Hashverfahren Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Prinzip Details Anwendungen Motivation Hashverfahren
MehrÜbung Algorithmen I
Übung Algorithmen I 10.5.17 Sascha Witt sascha.witt@kit.edu (Mit Folien von Lukas Barth, Julian Arz, Timo Bingmann, Sebastian Schlag und Christoph Striecks) Roadmap Listen Skip List Hotlist Amortisierte
MehrOptimierung eines neuen Logarithmic-Search-Verfahrens zum Image Mosaicing unter Einsatz des CUDA-Frameworks
Fachhochschule Köln, Campus Gummersbach Optimierung eines neuen Logarithmic-Search-Verfahrens zum Image Mosaicing unter Einsatz des CUDA-Frameworks 03.06.2009 Eugen Sewergin, B. Sc. Erstprüfer: Prof. Dr.
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 6 (7.5.2018) Dictionaries, Binäre Suche, Hashtabellen I / Yannic Maus Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary:
MehrHashverfahren I. Algorithmen und Datenstrukturen 251 DATABASE SYSTEMS GROUP
Hashverfahren I Bisher: Suchen mit Hilfe von Schlüsselvergleichen Jetzt: Stattdessen Adressberechnung Auswertung einer Funktion (Hash- oder Adressfunktion) Vorteil: Suche erfolgt weitgehend unabhängig
MehrAlgorithmen und Datenstrukturen II: Hashverfahren
Algorithmen und Datenstrukturen II: Hashverfahren Prof. Dr. Oliver Braun Letzte Änderung: 10.05.2017 16:21 Algorithmen und Datenstrukturen II: Hashverfahren 1/28 Hashverfahren bisher jeder Datensatz durch
MehrMulti- und Many-Core
Multi- und Many-Core Benjamin Warnke Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 2016-12-15 Benjamin
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
MehrHumboldt-Universität zu Berlin Berlin, den Institut für Informatik
Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt
MehrAlgorithmen und Datenstrukturen II: Hashverfahren
Algorithmen und Datenstrukturen II: Hashverfahren Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 10.05.2017 16:21 Inhaltsverzeichnis Hashverfahren....................................
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
MehrHashverfahren. (Algorithmen und Datenstrukturen II) Prof. Dr. Oliver Braun. Letzte Änderung: :33. Hashverfahren 1/29
Hashverfahren (Algorithmen und Datenstrukturen II) Prof. Dr. Oliver Braun Letzte Änderung: 19.03.2018 07:33 Hashverfahren 1/29 Hashverfahren bisher jeder Datensatz durch eindeutigen Schlüssel k K gekennzeichnet
MehrDo It Yourself: Power Analysis
Do It Yourself: Power Analysis Seitenkanalangriff Angriff auf ein kryptographisches System Bereits seit 1996 bekannt (Paul C. Kocher) Nutzt physikalische Messgrößen Beruht auf Korrelationen zwischen beobachteten
Mehrsort hash uncompress merge & mark hash collisions
Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS hash sort... compress uncompress merge & mark hash collisions 1 KIT Julian Universität Arz, des Timo LandesBingmann,
MehrCUDA Optimierung von nicht-linearer oberflächen- und intensitätsbasierter Registrierung
CUDA Optimierung von nicht-linearer oberflächen- und intensitätsbasierter Registrierung Stefan Köhnen, Jan Ehrhardt, Alexander Schmidt-Richberg, Heinz Handels Institut für Medizinische Informatik, Universität
MehrKlausur Algorithmen und Datenstrukturen II
Technische Universität Braunschweig Sommersemester 2017 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Arne Schmidt Klausur Algorithmen und Datenstrukturen
MehrP ( Mindestens zwei Personen haben am gleichen Tag Geb. ) (1) = 1 P ( Alle Personen haben an verschiedenen Tagen Geb. ) (2)
1 Hashing Einleitung Eine sehr naive Herangehensweise zur Implementierung eines Wörterbuchs ist die Benutzung eines hinreichend grossen unsortierten Arrays, in dem jeweils an eine freie Position eingefügt
MehrDatenbanksysteme SS 2013
Datenbanksysteme SS 2013 Kapitel 4: Physikalische Datenorganisation Vorlesung vom 16.04.2013 Oliver Vornberger Institut für Informatik Universität Osnabrück Speicherhierarchie GB 10 GHertz TB 100 10 ms
Mehr12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.
Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Worst-case Zeit für Search: Θ(n). In der Praxis jedoch sehr gut. Unter gewissen
MehrStream Processing und High- Level GPGPU Sprachen
Stream Processing und High- Level GPGPU Sprachen Seminar Programmierung von Grafikkarten Jens Breitbart Problem 5000% 4000% 3000% 2000% Rechenleistung: +71% pro Jahr Bandbreite: +25% pro Jahr Zugriffszeit:
MehrB / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme
B / B* - Bäume Guido Hildebrandt Seminar Datenbanksysteme 25.11.2010 Gliederung Einleitung Binärbaum B - Baum B* - Baum Varianten Zusammenfassung Quellen Gliederung Einleitung Binärbaum B - Baum B* - Baum
MehrKapitel 5 Hash-basierte Indizes
Kapitel 5 Hash-basierte Indizes Überblick Statisches Hashing Extendible Hashing Linear Hashing 1 Architektur und Implementierung von Datenbanksystemen WS 009/10 Melanie Herschel Universität Tübingen Hash-basierte
MehrAlgorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?
Algorithmen I Prof. Jörn Müller-Quade 17.05.2017 Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 (Folien von Peter Sanders) KIT Institut für Theoretische Informatik
MehrCUDA 3SAT-Solver Boolean Satisfiability VS. nvidia CUDA
CUDA 3SAT-Solver Boolean Satisfiability VS. nvidia CUDA Multicore Architectures and Programming 27. 6. 2008 Blaß Thorsten, Schönfeld Fabian Das Problem SAT: Boolean Satisfiability (Dt.: Erfüllbarkeitsproblem)
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Kürzeste Wege, Heaps, Hashing Heute: Kürzeste Wege: Dijkstra Heaps: Binäre Min-Heaps Hashing:
Mehr