algorithm engineering „parallele algorithmen“

65
Algorithm Engineering „Parallele Algorithmen“ Stefan Edelkamp

Upload: rehan

Post on 23-Feb-2016

63 views

Category:

Documents


1 download

DESCRIPTION

Algorithm Engineering „Parallele Algorithmen“. Stefan Edelkamp. Übersicht. Parallele Externe Suche Parallele Verspätete Duplikatselimination Parallele Expansion Verteilte Sortierung Parallele Strukturierte Duplikatselimination Disjunkte Duplikatserkennungsbereiche ”Schlöser” - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Algorithm   Engineering „Parallele Algorithmen“

Algorithm Engineering „Parallele Algorithmen“

Stefan Edelkamp

Page 2: Algorithm   Engineering „Parallele Algorithmen“

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

VerteilteSuche

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

I/O.

Page 4: Algorithm   Engineering „Parallele Algorithmen“

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“

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 the

Mutual Exclusio

n

Problem!!!

Page 6: Algorithm   Engineering „Parallele Algorithmen“

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 rangesSorted buffers from every processor

Sorted File

h0 ….. hk-1 hk ….. hl-1

Page 7: Algorithm   Engineering „Parallele Algorithmen“

ParallelExternal A*

Page 8: Algorithm   Engineering „Parallele Algorithmen“

Parallel External A*

Page 9: Algorithm   Engineering „Parallele Algorithmen“
Page 10: Algorithm   Engineering „Parallele Algorithmen“

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“

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“

Distributed Heuristic Evaluation

Page 13: Algorithm   Engineering „Parallele Algorithmen“

Same bottleneck in external-memory search

Bottleneck: Duplicate detection Duplicate paths cause parallelization overhead

A

C D

BB

C DDDD

Internal memory External memoryvs.

fast

slow

A

Page 14: Algorithm   Engineering „Parallele Algorithmen“

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

B11B8B12 B13 B11B15 B14

Page 15: Algorithm   Engineering „Parallele Algorithmen“

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 B13 B11B15 B141

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“

Implementation of Parallel SDD Hierarchical organization of hash tables

One 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“

ParallelleMatrix- Multiplication

Page 18: Algorithm   Engineering „Parallele Algorithmen“
Page 19: Algorithm   Engineering „Parallele Algorithmen“

ParalleleMatrixMultiplication

Page 20: Algorithm   Engineering „Parallele Algorithmen“

Exklusives Schreiben

Page 21: Algorithm   Engineering „Parallele Algorithmen“

ParalleleKopien

Page 22: Algorithm   Engineering „Parallele Algorithmen“

FazitMatrix Multiplication

Page 23: Algorithm   Engineering „Parallele Algorithmen“

Paralleles List Ranking

Page 24: Algorithm   Engineering „Parallele Algorithmen“

List Ranking

Page 25: Algorithm   Engineering „Parallele Algorithmen“

Erster Algorithmus

Page 26: Algorithm   Engineering „Parallele Algorithmen“

Prinzip

Page 27: Algorithm   Engineering „Parallele Algorithmen“

Komplexität

Page 28: Algorithm   Engineering „Parallele Algorithmen“

Verbesserungen

Page 29: Algorithm   Engineering „Parallele Algorithmen“

Strategie

Page 30: Algorithm   Engineering „Parallele Algorithmen“

Unabhängige Mengen

Page 31: Algorithm   Engineering „Parallele Algorithmen“

2-Färbung

Page 32: Algorithm   Engineering „Parallele Algorithmen“

Reduktion

Page 33: Algorithm   Engineering „Parallele Algorithmen“

Restauration

Page 34: Algorithm   Engineering „Parallele Algorithmen“

Beispiel

Page 35: Algorithm   Engineering „Parallele Algorithmen“

Variablen

Page 36: Algorithm   Engineering „Parallele Algorithmen“

Beispiel(ctd.)

Page 37: Algorithm   Engineering „Parallele Algorithmen“

PseudoCode

Page 38: Algorithm   Engineering „Parallele Algorithmen“

NächsterSchritt

Page 39: Algorithm   Engineering „Parallele Algorithmen“

Analyse

Page 40: Algorithm   Engineering „Parallele Algorithmen“

Backup

Page 41: Algorithm   Engineering „Parallele Algorithmen“

Algo

Page 42: Algorithm   Engineering „Parallele Algorithmen“

Algo

Page 43: Algorithm   Engineering „Parallele Algorithmen“

Speicher

Page 44: Algorithm   Engineering „Parallele Algorithmen“

Analyse

Page 45: Algorithm   Engineering „Parallele Algorithmen“

Ausblick:Randomisiertin O(n) whp?

Page 46: Algorithm   Engineering „Parallele Algorithmen“

Problememit DFS

Page 47: Algorithm   Engineering „Parallele Algorithmen“

IdeeEulerTour

Page 48: Algorithm   Engineering „Parallele Algorithmen“

ParallelDFS

Page 49: Algorithm   Engineering „Parallele Algorithmen“

DFSNummern

Page 50: Algorithm   Engineering „Parallele Algorithmen“

Allgemein

Page 51: Algorithm   Engineering „Parallele Algorithmen“

Allgemein

Page 52: Algorithm   Engineering „Parallele Algorithmen“

Allgemein

Page 53: Algorithm   Engineering „Parallele Algorithmen“

Beispiel

Page 54: Algorithm   Engineering „Parallele Algorithmen“

Ein Zyklusoder mehrere?

Page 55: Algorithm   Engineering „Parallele Algorithmen“

Korrektheit

Page 56: Algorithm   Engineering „Parallele Algorithmen“

Korrektheit

Page 57: Algorithm   Engineering „Parallele Algorithmen“

Beispiel

Page 58: Algorithm   Engineering „Parallele Algorithmen“

KonstruktionEulerTour

Page 59: Algorithm   Engineering „Parallele Algorithmen“

Fazit Euler Touren

Page 60: Algorithm   Engineering „Parallele Algorithmen“

GPU Architektur

Page 61: Algorithm   Engineering „Parallele Algorithmen“

Effektivität

Page 62: Algorithm   Engineering „Parallele Algorithmen“

Hierarchischer Speicher

Page 63: Algorithm   Engineering „Parallele Algorithmen“

Hash-based Partitioning

Page 64: Algorithm   Engineering „Parallele Algorithmen“

BFS

Page 65: Algorithm   Engineering „Parallele Algorithmen“

Kernel Functions