Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

65
Algorithm Engineering „Parallele Algorithmen“ Stefan Edelkamp

Transcript of Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Page 1: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Algorithm Engineering „Parallele Algorithmen“

Stefan Edelkamp

Page 2: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

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

VerteilteSuche

Distributed setting provides more space. Experiments show that internal time dominates

I/O.

Page 4: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

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.

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.

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.

ParallelExternal A*

Page 8: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Parallel External A*

Page 9: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.
Page 10: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

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.

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.

Distributed Heuristic Evaluation

Page 13: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

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.

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.

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.

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.

ParallelleMatrix- Multiplication

Page 18: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.
Page 19: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

ParalleleMatrixMultiplication

Page 20: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Exklusives Schreiben

Page 21: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

ParalleleKopien

Page 22: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

FazitMatrix Multiplication

Page 23: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Paralleles List Ranking

Page 24: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

List Ranking

Page 25: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Erster Algorithmus

Page 26: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Prinzip

Page 27: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Komplexität

Page 28: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Verbesserungen

Page 29: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Strategie

Page 30: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Unabhängige Mengen

Page 31: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

2-Färbung

Page 32: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Reduktion

Page 33: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Restauration

Page 34: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Beispiel

Page 35: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Variablen

Page 36: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Beispiel(ctd.)

Page 37: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

PseudoCode

Page 38: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

NächsterSchritt

Page 39: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Analyse

Page 40: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Backup

Page 41: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Algo

Page 42: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Algo

Page 43: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Speicher

Page 44: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Analyse

Page 45: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Ausblick:Randomisiertin O(n) whp?

Page 46: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Problememit DFS

Page 47: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

IdeeEulerTour

Page 48: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

ParallelDFS

Page 49: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

DFSNummern

Page 50: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Allgemein

Page 51: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Allgemein

Page 52: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Allgemein

Page 53: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Beispiel

Page 54: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Ein Zyklusoder mehrere?

Page 55: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Korrektheit

Page 56: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Korrektheit

Page 57: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Beispiel

Page 58: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

KonstruktionEulerTour

Page 59: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Fazit Euler Touren

Page 60: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

GPU Architektur

Page 61: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Effektivität

Page 62: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Hierarchischer Speicher

Page 63: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Hash-based Partitioning

Page 64: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

BFS

Page 65: Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.

Kernel Functions