Paralleler Cuckoo-Filter. Seminar: Implementierungstechniken für Hauptspeicherdatenbanksysteme Jeremias Neth München, 21.

Größe: px
Ab Seite anzeigen:

Download "Paralleler Cuckoo-Filter. Seminar: Implementierungstechniken für Hauptspeicherdatenbanksysteme Jeremias Neth München, 21."

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. 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

Mehr

Hash-Verfahren. Prof. Dr. T. Kudraß 1

Hash-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.

Mehr

Grafikkarten-Architektur

Grafikkarten-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

Mehr

Hash-Verfahren. Einführung

Hash-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.

Mehr

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

Praxiseinheit: 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.

Mehr

CUDA. 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. 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

Mehr

Compute Unified Device Architecture CUDA

Compute 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:

Mehr

GPGPU WITH OPENCL. Praktikum Parallele Rechnerarchitekturen, 2015w Franz Richter-Gottfried

GPGPU 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,

Mehr

Teil VII. Hashverfahren

Teil 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:

Mehr

Literatur: Jeffrey D. Ullman: Principles of Database Systems, 2 nd Edition 1982, Kapitel 2.2

Literatur: 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

Mehr

Hashtabellen. Hashverfahren, was ist das eigentlich?

Hashtabellen. 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

Mehr

Organisationsformen der Speicherstrukturen

Organisationsformen 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

Mehr

5.8.2 Erweiterungen Dynamische Hash-Funktionen (mit variabler Tabellengröße)?

5.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

Mehr

CUDA. 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. 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:

Mehr

LEISTUNGSVERGLEICH 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 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

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung 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

Mehr

Seminar Datenbanken Martin Gerstmann

Seminar 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

Mehr

Grundlagen von CUDA, Sprachtypische Elemente

Grundlagen 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

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung 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

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik 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

Mehr

Informatik II, SS 2016

Informatik 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

Mehr

Rheinisch-Westfälische Technische Hochschule Aachen. Seminararbeit

Rheinisch-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

Mehr

3. Übung Algorithmen I

3. Ü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:

Mehr

Eine kurze Geschichte der Grafikkarten

Eine 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

Mehr

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)

13. 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

Mehr

Informatik II, SS 2014

Informatik 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

Mehr

Beispielvortrag: HPCG auf Intel Haswell-EP

Beispielvortrag: 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

Mehr

CUDA. 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 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

Mehr

Muster. Informatik 3 (Februar 2004) Name: Matrikelnummer: Betrachten Sie den folgenden Suchbaum. A G H J K M N

Muster. 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

Mehr

Informatik II, SS 2018

Informatik 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

Mehr

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung

Hashing 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

Mehr

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung

Hashing 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

Mehr

Einführung. GPU-Versuch. Andreas Schäfer Friedrich-Alexander-Universität Erlangen-Nürnberg

Einfü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

Mehr

Gliederung. Was ist CUDA? CPU GPU/GPGPU CUDA Anwendungsbereiche Wirtschaftlichkeit Beispielvideo

Gliederung. 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

Mehr

Volumenrendering mit CUDA

Volumenrendering mit CUDA Volumenrendering mit CUDA Arbeitsgruppe Visualisierung und Computergrafik http://viscg.uni-muenster.de Überblick Volumenrendering allgemein Raycasting-Algorithmus Volumen-Raycasting mit CUDA Optimierung

Mehr

GPGPU-Programmierung

GPGPU-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

Mehr

Masterpraktikum Scientific Computing

Masterpraktikum 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

Mehr

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

Motivation (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

Mehr

GPGPU-Programmierung

GPGPU-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

Ü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

Mehr

Algorithmen I. Tutorium 1-4. Sitzung. Dennis Felsing

Algorithmen 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Hash-basierte Dateien

Hash-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

Mehr

4. Hashverfahren. geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D. Menge A von Speicheradressen; oft: A = {0,..., m 1}

4. 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

Mehr

1 Einleitung Ziele der Arbeit Aufbau der Arbeit... 2

1 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

Mehr

Masterpraktikum Scientific Computing

Masterpraktikum 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)

Mehr

Kollision Hashfunktion Verkettung Offenes Hashing Perfektes Hashing Universelles Hashing Dynamisches Hashing. 4. Hashverfahren

Kollision 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

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: 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

Mehr

Informatik II, SS 2014

Informatik 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

Mehr

Programmiertechnik II

Programmiertechnik 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:

Mehr

2 Rechnerarchitekturen

2 Rechnerarchitekturen 2 Rechnerarchitekturen Rechnerarchitekturen Flynns Klassifikation Flynnsche Klassifikation (Flynn sche Taxonomie) 1966 entwickelt, einfaches Modell, bis heute genutzt Beschränkung der Beschreibung auf

Mehr

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

Paralleles 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

Mehr

Multi-Core Architectures and Programming. Bilateral Grid Filter

Multi-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

Mehr

Algorithmen 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 / 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)

Mehr

Datenstrukturen und Algorithmen. Vorlesung 10

Datenstrukturen 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

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: 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

Mehr

Parallelisierung von Modellprädiktiver Regelung auf CUDA-Hardware

Parallelisierung 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 Φ :

Mehr

Multicore-Architekturen

Multicore-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

Mehr

OpenCL (Cell B. E., PS3) Multicore Architectures and Programming

OpenCL (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

Mehr

Programmiertechnik 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: Paar von Schlüsseln mit

Mehr

Implementierung zweier Algorithmen mittels OpenCL auf Grafikkarten

Implementierung 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,

Mehr

Yilmaz, Tolga MatNr: Mesaud, Elias MatNr:

Yilmaz, 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

Mehr

GPU-Programmierung: OpenCL

GPU-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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Teil 1: Suchen. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Suchen 1-1

Teil 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

Mehr

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Klausur 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

Mehr

s(x, i) = i h 2 (x), i N 0

s(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,

Mehr

GPGPU mit NVIDIA CUDA

GPGPU 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

Mehr

Kapitel 4. Streuen. (h K injektiv) k 1 k 2 K = h(k 1 ) h(k 2 )

Kapitel 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

Mehr

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

OpenCL. 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

Mehr

Vorlesung Datenstrukturen

Vorlesung 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

Mehr

Stream Processing II

Stream 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

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: 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

Mehr

Algorithmen und Datenstrukturen Hashverfahren

Algorithmen 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 Ü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

Mehr

Optimierung eines neuen Logarithmic-Search-Verfahrens zum Image Mosaicing unter Einsatz des CUDA-Frameworks

Optimierung 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.

Mehr

Informatik II, SS 2018

Informatik 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:

Mehr

Hashverfahren I. Algorithmen und Datenstrukturen 251 DATABASE SYSTEMS GROUP

Hashverfahren 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

Mehr

Algorithmen und Datenstrukturen II: Hashverfahren

Algorithmen 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

Mehr

Multi- und Many-Core

Multi- 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

Mehr

ANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS. Sascha Kath

ANALYSE 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

Mehr

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Humboldt-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

Mehr

Algorithmen und Datenstrukturen II: Hashverfahren

Algorithmen 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....................................

Mehr

Parallel Computing. Einsatzmöglichkeiten und Grenzen. Prof. Dr. Nikolaus Wulff

Parallel 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

Mehr

Hashverfahren. (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: :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

Mehr

Do It Yourself: Power Analysis

Do 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

Mehr

sort hash uncompress merge & mark hash collisions

sort 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,

Mehr

CUDA Optimierung von nicht-linearer oberflächen- und intensitätsbasierter Registrierung

CUDA 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

Mehr

Klausur Algorithmen und Datenstrukturen II

Klausur 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

Mehr

P ( Mindestens zwei Personen haben am gleichen Tag Geb. ) (1) = 1 P ( Alle Personen haben an verschiedenen Tagen Geb. ) (2)

P ( 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

Mehr

Datenbanksysteme SS 2013

Datenbanksysteme 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

Mehr

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.

12. 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

Mehr

Stream Processing und High- Level GPGPU Sprachen

Stream 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:

Mehr

B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme

B / 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

Mehr

Kapitel 5 Hash-basierte Indizes

Kapitel 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

Mehr

Algorithmen 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 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

Mehr

CUDA 3SAT-Solver Boolean Satisfiability VS. nvidia CUDA

CUDA 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 Ü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