algorithm engineering parallele algorithmen stefan edelkamp
TRANSCRIPT
![Page 1: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/1.jpg)
Algorithm Engineering „Parallele Algorithmen“
Stefan Edelkamp
![Page 2: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/2.jpg)
Übersicht
Parallele Externe Suche Parallele Verspätete Duplikatselimination
Parallele ExpansionVerteilte Sortierung
Parallele Strukturierte DuplikatseliminationDisjunkte Duplikatserkennungsbereiche ”Schlöser”
Parallele AlgorithmenMatrix-MultiplikationList RankingEuler Tour
![Page 3: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/3.jpg)
VerteilteSuche
Distributed setting provides more space. Experiments show that internal time dominates
I/O.
![Page 4: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/4.jpg)
Exploiting Independence
Since each state in a Bucket is independent of the other –
they can be expanded in parallel.
Duplicates removal can be distributed on different processors.
Bulk (Streamed) transfers much better than single ones.
![Page 5: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/5.jpg)
Distributed Queue for Parallel Best-First Search
P0
P1
P2
<15,34, 0, 100>
<g, h, start byte, size>
<15,34, 20, 100>TOP
<15,34, 40, 100>
<15,34, 60, 100>
Beware of t
he
Mutual E
xclusio
n
Problem!!!
![Page 6: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/6.jpg)
Multiple Processors - Multiple Disks Variant
Sorted buffers w.r.t the hash val
Sorted Files
P1 P2 P3 P4
Divide w.r.t the hash ranges
Sorted buffers from every processor
Sorted File
h0 ….. hk-1 hk ….. hl-1
![Page 7: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/7.jpg)
ParallelExternal A*
![Page 8: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/8.jpg)
Parallel External A*
![Page 9: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/9.jpg)
![Page 10: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/10.jpg)
Distributed Heuristic Evaluation Assume one child processor for each tile one master processor
B3B1 B2
B8
B4 B5 B6 B7
B9 B10 B11
B12 B13 B14 B15
B0B3B1 B2
B8
B4 B5 B6 B7
B9 B10 B11
B12 B13 B14 B15
B0
![Page 11: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/11.jpg)
Distributed Pattern Database Search
Only pattern databases that include the client tile need to be loaded on the client
Because multiple tiles in pattern, from birds eye PDB loaded multiple times
In 15-Puzzle with corner and fringe PDB this saves RAM in the order of factor 2 on each machine, compared to loading all
In 36-Puzzle with 6-tile pattern databases this saves RAM in the order of factor 6 on each machine, compared to loading all
Extends to additive pattern databases
![Page 12: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/12.jpg)
Distributed Heuristic Evaluation
![Page 13: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/13.jpg)
Same bottleneck in external-memory search
Bottleneck: Duplicate detection Duplicate paths cause parallelization overhead
A
C D
BB
C DDDD
Internal memory External memory
vs.
fast
slow
A
![Page 14: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/14.jpg)
Disjoint duplicate-detection scopes
B1B0 B4
B0 B3B1 B2
B8
B4 B5 B6 B7
B9 B10 B11
B12 B13 B14 B15
B0 B1
B4
B3B2
B7
B2B3 B7
B12
B8
B13 B15B14
B11
B8B12 B13B11B15 B14
![Page 15: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/15.jpg)
Finding disjoint duplicate-detection scopes
B1B0 B4
0 00 0
0
0 0 0 0
0 0
1
0 0 0 0
0 1
1
02
1
B2B3 B7
0 1 0
B8B12 B13B11B15 B14
1
2 2
01
2
2
2
2
1
2
2
2
2
2
0 1
1
1
0
1
0
2
3
3
2
B1B5B6
B4 B9
2
3
3
4
3
3
![Page 16: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/16.jpg)
Implementation of Parallel SDD
Hierarchical organization of hash tablesOne hash table for each abstract nodeTop-level hash func. = state-space projection func.
Shared-memory managementMinimum memory-allocation size mMemory wasted is bounded by O(m#processors)
External-memory version I/O-efficient order of node expansions I/O-efficient replacement strategy
Benötigt nur ein Mutex “Schloss”
B3B1 B2
B8
B4 B5 B6 B7
B9 B10 B11
B12 B13 B14 B15
B0
![Page 17: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/17.jpg)
ParallelleMatrix- Multiplication
![Page 18: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/18.jpg)
![Page 19: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/19.jpg)
ParalleleMatrixMultiplication
![Page 20: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/20.jpg)
Exklusives Schreiben
![Page 21: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/21.jpg)
ParalleleKopien
![Page 22: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/22.jpg)
FazitMatrix Multiplication
![Page 23: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/23.jpg)
Paralleles List Ranking
![Page 24: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/24.jpg)
List Ranking
![Page 25: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/25.jpg)
Erster Algorithmus
![Page 26: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/26.jpg)
Prinzip
![Page 27: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/27.jpg)
Komplexität
![Page 28: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/28.jpg)
Verbesserungen
![Page 29: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/29.jpg)
Strategie
![Page 30: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/30.jpg)
Unabhängige Mengen
![Page 31: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/31.jpg)
2-Färbung
![Page 32: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/32.jpg)
Reduktion
![Page 33: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/33.jpg)
Restauration
![Page 34: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/34.jpg)
Beispiel
![Page 35: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/35.jpg)
Variablen
![Page 36: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/36.jpg)
Beispiel(ctd.)
![Page 37: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/37.jpg)
PseudoCode
![Page 38: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/38.jpg)
NächsterSchritt
![Page 39: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/39.jpg)
Analyse
![Page 40: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/40.jpg)
Backup
![Page 41: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/41.jpg)
Algo
![Page 42: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/42.jpg)
Algo
![Page 43: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/43.jpg)
Speicher
![Page 44: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/44.jpg)
Analyse
![Page 45: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/45.jpg)
Ausblick:Randomisiertin O(n) whp?
![Page 46: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/46.jpg)
Problememit DFS
![Page 47: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/47.jpg)
IdeeEulerTour
![Page 48: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/48.jpg)
ParallelDFS
![Page 49: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/49.jpg)
DFSNummern
![Page 50: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/50.jpg)
Allgemein
![Page 51: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/51.jpg)
Allgemein
![Page 52: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/52.jpg)
Allgemein
![Page 53: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/53.jpg)
Beispiel
![Page 54: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/54.jpg)
Ein Zyklusoder mehrere?
![Page 55: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/55.jpg)
Korrektheit
![Page 56: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/56.jpg)
Korrektheit
![Page 57: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/57.jpg)
Beispiel
![Page 58: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/58.jpg)
KonstruktionEulerTour
![Page 59: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/59.jpg)
Fazit Euler Touren
![Page 60: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/60.jpg)
GPU Architektur
![Page 61: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/61.jpg)
Effektivität
![Page 62: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/62.jpg)
Hierarchischer Speicher
![Page 63: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/63.jpg)
Hash-based Partitioning
![Page 64: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/64.jpg)
BFS
![Page 65: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d7649795902118cbe14/html5/thumbnails/65.jpg)
Kernel Functions