52
1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

Embed Size (px)

Citation preview

Page 1: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

1

Paralleles Sortieren

(bitones Sortieren, Hyperquicksort, Regular Sampling)

von Ferdinand Davertzhofen und Michael Stolte

Ferdinand Davertzhofen
Schriftart:Times New Roman (Serifen!)Farben:nur Schwarz, Rot und Grün(Hyperlinks: blau)Schriftgrößen:44pt für Hauptüberschriften40pt für Seitenüberschriften24pt für Text20pt für kleinen Text
Page 2: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

2

Gliederung

1. Bitones Sortieren1.1 Bitone Sequenzen1.2 Der Algorithmus von Batcher1.3 Hardwarespezifische Adaptionen

2. Quicksort basiertes Sortieren2.1 Sequenzieller Quicksort2.2 Paralleler Quicksort2.3 Hyperquicksort2.4 Regular Sampling

3. Zusammenfassung und Fazit

Teil 1

Teil 2

Page 3: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

3

1

2

3

4

5

6

7

8

Tal

Gipfel

A

B

C

D

E

F

G

H

Gipfel

Tal

A

B

C

D

E

F

G

H

Gipfel 1

Tal 1

Gipfel 2

Tal 2

Definition:Eine bitone Sequenz ist eine Folge a1,a2,…,an von beliebigen Elementen, deren erster Teil a0,…,ai aufsteigend und zweiter Teil ai,…,an absteigend sortiert ist, oder sich die Elemente durch eine zyklische Verschiebung so anordnen lassen, dass obige Bedingung gilt.

Beispiele: 8, 5, 2, 1, 3, 4, 6, 7 oder C, B, A, E, H, G, F, D.

1.1 Bitone Sequenzen

Page 4: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

4

Gliederung

1. Bitones Sortieren1.1 Bitone Sequenzen1.2 Der Algorithmus von Batcher1.3 Hardwarespezifische Adaptionen

2. Quicksort basiertes Sortieren2.1 Sequenzieller Quicksort2.2 Paralleler Quicksort2.3 Hyperquicksort2.4 Regular Sampling

3. Zusammenfassung und Fazit

Teil 1

Teil 2

Page 5: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

5

• 1968 von Kenneth E. Batcher

• divide & conquer

• Input: unsortierte Liste von Elementenoder bitone Sequenz

• Sortieren durch „compare-exchange“-Prinzip:

Elementpaar

Komparator

Reihenfolge prüfen

ggf. Elemente austauschen

sortiertes Elementpaar

1.2 Der Algorithmus von Batcher

Page 6: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

6

• 1968 von Kenneth E. Batcher

• divide & conquer

• Input: unsortierte Liste von Elementenoder bitone Sequenz

• Sortieren durch „compare-exchange“-Prinzip:

Elementpaar Komparatortypen:

Komparator

Reihenfolge prüfen

ggf. Elemente austauschen

sortiertes Elementpaar

1.2 Der Algorithmus von Batcher

+a

b

min{a,b}

max{a,b}

-a

b

max{a,b}

min{a,b}

Page 7: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

7

Phase 1: (unsortierte Liste bitone Sequenz) [optional]

1. Unsortierte Liste der Länge n = Liste von n/2 bitonen Sequenzen der Länge 2

2. Sortieren von je 2 bitonen Sequenzen; eine aufsteigend, die benachbarte absteigend bitone Sequenz der Länge 4

3. Rekursiv für alle n/2 bitonen Sequenzen bis eine einzige bitone Sequenz der Länge n erreicht ist

1.2 Der Algorithmus von Batcher

H

G

F

E

D

C

B

A

H

G

F

E

D

C

B

A

H

G

F

E

D

C

B

A

H

G

F

E

D

C

B

A

Tal

Gipfel

Page 8: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

8

Phase 2: (bitone Sequenz sortierte Liste)

Rekursives Aufteilen der bitonen Sequenz a0,a1,a2,…,an-2,an-1 in zwei bitone Sequenzen der Länge :

und

durch „compare-exchange“-Vorgänge.

1.2 Der Algorithmus von Batcher

2

n

),min(,),,min(),,min( 1.1110222

naaaaaa nnn

),max(,),,max(),,max( 1.1110222

naaaaaa nnn

H

G

F

E

D

C

B

A

Tal

H

G

F

E

D

C

B

A

Gipfel

H

G

F

E

D

C

B

A

H

G

F

E

D

C

B

A

Page 9: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

9

Rekursionsschema des Algortihmus (Mischen von n Elementen):

1.2 Der Algorithmus von Batcher

BitonesMischenvon n/2

Elementen

BitonesMischenvon n/2

Elementen

+

+

+

+

a0

a1

an/2 - 2

an/2 - 1

an/2

an/2 + 1

an-2

an-1

Page 10: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

10

C

D

B

H

E

G

F

A

C

D

H

B

G

E

A

F

C

H

B

D

G

A

F

E

C

D

+

E

G

-

F

A

+

B

H

-

C

H

+

D

B

+

G

A

-

E

F

-

C

B

+

H

D

+

G

F

-

A

E

-

B

C

D

H

G

F

E

A

B

G

+

C

F

+

D

E

+

H

A

+

B

G

C

F

D

E

A

H

Hier ist aus der Punktwolke die bitone Sequenz geworden.

B

D

+

C

A

+

G

E

+

F

H

+

B

D

A

C

E

G

F

H

B

A

+

D

C

+

E

F

+

G

H

+

E

A

B

C

D

E

F

G

H

Ablauf der Ausführung:

1.2 Der Algorithmus von Batcher

Page 11: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

11

Komplexität (1): Ermittlung der benötigten Rekursionsebenen durch Induktion in 2 Schritten.

Sei g(k) die Anzahl der benötigten Ebenen für das Sortieren einer bitonen Sequenz mit n = 2k Elementen und gelte

g(1) = 1, g(2) = 2, …

So ist g(k) = 1 + g( k–1 ) = k

Sei h(k) die Anzahl der benötigten Ebenen für das Sortieren von n = 2k unsortierten Elementen und gelte

h(1) = 1, h(2) = 3, …

So ist h(k) = h( k-1 ) + g(k) =

1.2 Der Algorithmus von Batcher

2

)1( kk

Page 12: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

12

Komplexität (1): Ermittlung der benötigten Rekursionsebenen durch Induktion in 2 Schritten.

Sei g(k) die Anzahl der benötigten Ebenen für das Sortieren einer bitonen Sequenz mit n = 2k Elementen und gelte

g(1) = 1, g(2) = 2, …

So ist g(k) = 1 + g( k–1 ) = k

Sei h(k) die Anzahl der benötigten Ebenen für das Sortieren von n = 2k unsortierten Elementen und gelte

h(1) = 1, h(2) = 3, …

So ist h(k) = h( k-1 ) + g(k) =

1.2 Der Algorithmus von Batcher

2

)1( kk

Am vorherigen Beispiel:

g(3) = 1+g(2) = 1 + 2 = 3

Am vorherigen Beispiel:

h(3) = h(2)+g(3) = 3 + 3 = 6

Page 13: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

13

Komplexität (2):

Zu vernachlässigen: = 2k - 1 Vergleichsoperationen je Ebene

Da diese parallel ausgeführt werden.

Der zeitliche Aufwand bleibt bei

also Komplexität von Θ(log2n)

1.2 Der Algorithmus von Batcher

2

n

2

)1(loglog

2

)1(

nnkk

Kosten:

Θ(p log2n)

Kostenoptimalität:

auch bei n = p nicht gegeben. [da > Θ(n log n)]

Page 14: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

14

Gliederung

1. Bitones Sortieren1.1 Bitone Sequenzen1.2 Der Algorithmus von Batcher1.3 Hardwarespezifische Adaptionen

2. Quicksort basiertes Sortieren2.1 Sequenzieller Quicksort2.2 Paralleler Quicksort2.3 Hyperquicksort2.4 Regular Sampling

3. Zusammenfassung und Fazit

Teil 1

Teil 2

Page 15: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

15

Im Shuffle-Exchange Netzwerk (1)(1971 von Harold S. Stone)

Die Eigenschaften von Shuffle-Exchange Netzwerkenermöglichen es, identische Verbindungen zwischen einzelnen Prozessoren auf allen Rekursionsebenen zu nutzen.

Geringerer Platzbedarf + Geringere Komplexität = geringere Kosten für die Hardware

Unterschied zu Batcher:Nicht die Kommunikationsleitungen zwischen den Prozessoren können sich mit jedem Schritt ändern, sondern der eingesetzte Komparatortyp.

1.3 Hardwarespezifische Adaptionen

Page 16: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

16

Im Shuffle-Exchange Netzwerk (1)(1971 von Harold S. Stone)

Die Eigenschaften von Shuffle-Exchange Netzwerkenermöglichen es, identische Verbindungen zwischen einzelnen Prozessoren auf allen Rekursionsebenen zu nutzen.

Geringerer Platzbedarf + Geringere Komplexität = geringere Kosten für die Hardware

Unterschied zu Batcher:Nicht die Kommunikationsleitungen zwischen den Prozessoren können sich mit jedem Schritt ändern, sondern der eingesetzte Komparatortyp.

1.3 Hardwarespezifische Adaptionen

Page 17: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

17

Im Shuffle-Exchange Netzwerk (2)

1.3 Hardwarespezifische Adaptionen

C

D

B

H

E

G

F

A

C

D

H

B

G

E

A

F

C

G

D

E

H

A

B

F

C

D

+

E

G

-

F

A

+

B

H

-

C

G

D

E

H

A

B

F

C

H

+

G

A

-

D

B

+

E

F

-

C

H

G

A

B

D

F

E

C

B

+

H

D

+

G

F

-

A

E

-

B

C

D

H

G

F

E

A

B

G

+

C

F

+

D

E

+

H

A

+

Hier ist aus der Punktwolke die bitone Sequenz geworden.

B

G

C

F

D

E

A

H

B

D

+

G

E

+

C

A

+

F

H

+

B

D

E

G

A

C

F

H

B

A

+

D

C

+

E

F

+

G

H

+

A

B

C

D

E

F

G

H

Page 18: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

18

Im Shuffle-Exchange Netzwerk (3)

Komplexität:

Anzahl Ebenen wie bei Batcher

(Vergleichsoperationen sind auch hier zu vernachlässigen)

Zusätzlich: „shuffle“-Schritte für Datenverschiebungen

„shuffle“-Schritte für die Bestimmung der Maskenvektoren

also auch hier Komplexität von Θ(log2n)und Kosten von Θ(p log2n) [= nicht kostenoptimal]

1.3 Hardwarespezifische Adaptionen

2

)1( kk

)1(loglog nn

1log2 n

Page 19: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

19

Im 2-dimensionalen Gitternetzwerk (1)(1977 von C.D. Thompson und H.T. Kung)

„compare-exchange“

[ hier: „Zusammenbringen und Neuverteilen“ ]

Das Zusammenbringen von Elementen hat das Ziel, Elemente an dieselbe Position zu bringen, um diese dort vergleichen zu können. Danach werden die Elemente entsprechend des Vergleichsergebnisses neu verteilt.

Einsatz einer Indexfunktion zur effizienten Zuweisung von Listenelementen an das Gitternetzwerk

1.3 Hardwarespezifische Adaptionen

Page 20: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

20

Im 2-dimensionalen Gitternetzwerk (2)

1.3 Hardwarespezifische Adaptionen

1

5

7

6

9

11

15

14

16

13

10

12

1

8

4

2

3

5

6

7

8

4

3

2

16

13

12

10

9

11

14

15

1

4

3

2

8

5

6

7

9

11

12

10

16

13

14

15

1

2

3

4

6

5

8

7

9

10

12

11

14

13

16

15

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

1

5

7

6

11

9

14

15

16

13

10

12

8

4

3

2

1

5

7

6

15

14

9

11

16

10

13

12

2

4

3

8

1

5

9

6

15

14

7

11

2

4

13

12

16

10

3

8

5

1

9

6

15

14

11

7

2

4

12

13

10

16

3

8

6

9

1

5

7

14

11

15

2

12

4

13

8

16

3

10

9

6

5

1

14

7

11

15

2

12

4

13

16

8

10

3

Hier ist aus der Punktwolke die bitone Sequenz geworden.

Phase 1 Phase 2 Phase 3 Phase 4

Zusammenbringen:

Es werden diejenigen Elemente mit einander verglichen, deren Index-Bitfolgen sich in dem am wenigsten signifikanten Bit unterscheiden.

Neuverteilen:

In welche Richtung die Bewegung beim Neuverteilen abläuft, gibt die Indexfunktion vor.

Page 21: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

21

Im 2-dimensionalen Gitternetzwerk (3)

Komplexität:(ohne Herleitung)

Für Datenbewegungen:

Für Vergleichsoperationen:

Der erste Term dominiert, also betragen die Kosten

Da das Sortieren in 2-dimensionalen Gitternetzwerken einen Aufwand für Datenbewegungen von im günstigsten Fall benötigt, ist der Algorithmus für diese Architektur kostenoptimal. [ Im Allgemeinen Fall jedoch nicht! ]

1.3 Hardwarespezifische Adaptionen

)( N

)(log2 N

)( Np

)( N

Page 22: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

22

Gliederung

1. Bitones Sortieren1.1 Bitone Sequenzen1.2 Der Algorithmus von Batcher1.3 Hardwarespezifische Adaptionen

2. Quicksort basiertes Sortieren2.1 Sequenzieller Quicksort2.2 Paralleler Quicksort2.3 Hyperquicksort2.4 Regular Sampling

3. Zusammenfassung und Fazit

Teil 1

Teil 2

Page 23: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

23

• 1960 von C.A.R. Hoare

• divide & conquer

• Schnellster bekannter allgemeiner Sortieralgorithmus [ im günstigsten Fall sowie im Mittel Θ(n log n) ]

• Aufteilung der zu sortierenden Liste mittels eines Pivotelements

• Ein optimales Pivotelement wäre der Median der Liste

2.1 Sequenzieller Quicksort

A1 W A2

1Position l-1 l+1 n

Page 24: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

24

Gliederung

1. Bitones Sortieren1.1 Bitone Sequenzen1.2 Der Algorithmus von Batcher1.3 Hardwarespezifische Adaptionen

2. Quicksort basiertes Sortieren2.1 Sequenzieller Quicksort2.2 Paralleler Quicksort2.3 Hyperquicksort2.4 Regular Sampling

3. Zusammenfassung und Fazit

Teil 1

Teil 2

Page 25: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

25

• = „Naiver Ansatz“

• Trotz echtem Median als Pivotelement:1. Ebene: n-1Vergleiche von nur einem Prozessor2. Ebene: n-3 Vergleiche von nur 2 Prozessoren3. Ebene: n-7 Vergleiche von nur 4 Prozessoren

2.2 Paralleler Quicksort

Index-Stack

14 67

14 67

35 6714 34

Schritt 1: (Teil-)Liste holen

35

Schritt 2: Listezerlegen

Schritt 3: EineTeilliste

zurücklegen Schritt 4:Andere Teillisteerneut zerlegen

Page 26: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

26

Timeout &

Spielerwechsel…

Page 27: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

27

Gliederung

1. Bitones Sortieren1.1 Bitone Sequenzen1.2 Der Algorithmus von Batcher1.3 Hardwarespezifische Adaptionen

2. Quicksort basiertes Sortieren2.1 Sequenzieller Quicksort2.2 Paralleler Quicksort2.3 Hyperquicksort2.4 Regular Sampling

3. Zusammenfassung und Fazit

Teil 1

Teil 2

Page 28: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

28

• B. A. Wager, 1987

• Gleichzeitige Nutzung aller Prozessoren von Beginn an Hyperquicksort

• Netzwerktopologie: Hypercube– 2d Prozessoren in einem Würfel der Dimension d– Kommunikationsverbindung zwischen

Prozessoren, die sich um ein Bit unterscheiden

2.3 Hyperquicksort

Page 29: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

29

• Sortiereigenschaft in Multiprozessornetzwerk:

1. Jede lokale Folge eines Prozessors ist sortiert und2. Das letzte Element von Pi ist kleiner als das erste

Element von Pi+1.

• Generell: zwei Phasen– Phase 1: lokales Sortieren 1. Bedingung

erfüllt– Phase 2: Iteratives Vorgehen für immer kleinere

Teilfolgen

2.3 Hyperquicksort

Page 30: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

30

1

7

5

3

0

6

4

2

2.3 HyperquicksortZerlegen eines d-dimensionale Hypercubes in zwei Hypercubes der Dimension d-1

1

7

5

3

0

6

4

2

d = 3 d = 2

Page 31: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

31

Phase 2:

• Zunächst Betrachten des gesamten Hypercubes

• In jedem Iterationsschritt den Hypercube teilen und lokale Folgen sortieren,

– Sodass alle Elemente des unteren Hypercubes kleiner als sind als alle Elemente des oberen Hypercubes ist.

• Nach d Iterationen: 2d Hypercubes mit je einem Prozessor 2. Bedingung erfüllt

2.3 Hyperquicksort

Page 32: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

32

2.3 Hyperquicksort

Beispiel: Zahlenfolge mit 32 Elementen in einem 2-Dimensionalen Hypercube

d = 2

1

3

0

2

Page 33: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

33

30 5 17 12 1 25 22 14 8 19 10 27 2 24 16 20 7 13 32 31 4 23 21 3 29 26 28 6 9 11 15 18

30 5 17 12 1 25 22 14

29 26 28 6 9 11 15 187 13 32 31 4 23 21 3

8 19 10 27 2 24 16 200p

3p2p

1pSchritt 1

1 5 12 14 17 22 25 30

6 9 11 15 18 26 28 293 4 7 13 21 23 31 32

2 8 10 16 19 20 24 270p

3p2p

1pSchritt 2

2.3 Hyperquicksort1. Phase: Lokales Sortieren

Page 34: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

34

2.3 Hyperquicksort2. Phase: Erste Iteration:

Schritt 2

1 5 12 14 17 3 4 7 13

19 20 24 27 18 26 28 2922 25 30 21 23 31 32

2 8 10 16 6 9 11 150p

3p2p

1p

1 3 4 5 7 12 13 14 17

18 19 20 24 26 27 28 2921 22 23 25 30 31 32

2 6 8 9 10 11 15 160p

3p2p

1p

Schritt 3

Dimension d-1 !

1 5 12 14 17 22 25 30

3 4 7 13 21 23 31 32

2 8 10 16 19 20 24 270p

3p2p

1p

6 9 11 15 18 26 28 29

Schritt 1

Page 35: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

35

2.3 Hyperquicksort2. Phase: Zweite Iteration:

Schritt 2

1 3 4 5 7 2 6

30 31 32 26 27 28 2921 22 23 25 18 19 20 24

12 13 14 17 8 9 10 11 15 160p

3p2p

1p

Schritt 3

1 2 3 4 5 6 7

26 27 28 29 30 31 3218 19 20 21 22 23 24 25

8 9 10 11 12 13 14 15 16 170p

3p2p

1p

Dimension d-1 !

Schritt 1

1 3 4 5 7 12 13 14 17

18 19 20 24 26 27 28 2921 22 23 25 30 31 32

2 6 8 9 10 11 15 160p

3p2p

1p

Page 36: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

36

Quicksort

2.3 Hyperquicksort

)log( pn

pn

)(log2 p

)(log pn

)( pnVersenden der Teilfolgen

Teilen der lokalen Folge

Versenden des Pivotelemente (Broadcast)

)( pnSortieren mittels Mischen

Aufwand:

Page 37: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

37

Gesamtaufwand

2.3 Hyperquicksort

)log()(log)log( 2 pp pn

pn

pn

)log()log()log( 2 pnppn pn Kosten

Für ist der zweite Term ).log( nnnnp log

Für ist Hyperquicksort kostenoptimal.nnp log

Page 38: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

38

Gliederung

1. Bitones Sortieren1.1 Bitone Sequenzen1.2 Der Algorithmus von Batcher1.3 Hardwarespezifische Adaptionen

2. Quicksort basiertes Sortieren2.1 Sequenzieller Quicksort2.2 Paralleler Quicksort2.3 Hyperquicksort2.4 Regular Sampling

3. Zusammenfassung und Fazit

Teil 1

Teil 2

Page 39: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

39

• Li et Al., 1992

• Weitere Bezeichnungen:

– Sortieren durch Regular Sampling

– Sortieren durch Zerlegen des Wertebereichs

– Sample-Sort

• Vorgehen an einem konkreten Beispiel

2.4 Regular Sampling

Page 40: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

40

2.4 Regular Sampling

2 3 7 8 12 16 20 24 26 1 6 9 10 15 13 14 17 27 4 5 11 18 19 21 22 23 25

Positionen: 1, (n/p2) +1, (2n/p2)+1, ..., (p-1)(n/p2)+1

8 18Pivotelemente:

1 2 4 8 10 17 18 20 22Sortierte regular

Samples: 2/)1(,...,2/2,2/ ppppppp

p1 p2 p3

12 7 3 20 8 16 24 2 26 1 13 6 17 15 10 14 9 27 4 21 11 22 23 19 25 18 5Aufteilen

2 3 7 8 12 16 20 24 26 1 6 9 10 15 13 14 17 27 4 5 11 18 19 21 22 23 25Lokales Sortieren

Regular Samples: 2 8 20 1 10 17 4 18 22

Ausgewählter Prozessor

Page 41: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

41

2.4 Regular Sampling

2 3 7 8 12 16 20 24 26 1 6 9 10 15 13 14 17 27 4 5 11 18 19 21 22 23 25Teilen

2 3 7 8 1 6 4 5 12 16 9 10 15 13 14 17 11 18 20 24 26 27 19 21 22 23 25

Versenden der Teilfolgen

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27Lokales Sortieren

p1 p2 p3

Page 42: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

42

Quicksort

2.4 Regular Sampling

)log( pn

pn

)( 2p

Sortieren der Teilfolgen durch Mischen

Auswahl und Broadcast der Pivotelemente

Sortieren der Samples

Versenden der Regular Samples

Versenden der Teilfolgen[Quinn]

)log()log( 222 pppp

)()(log log pp p

p

)log()log( 22 pnpppn

)log( ppn

Aufwand:

Page 43: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

43

Gesamtaufwand

2.4 Regular Sampling

Für

Kosten

)loglogloglog( 2 pnpppn pn

pn

)loglogloglog( 3 ppnpnppnn

3pn ist der Algorithmus kostenoptimal,da erster Term dominiert !

Page 44: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

44

Gliederung

1. Bitones Sortieren1.1 Bitone Sequenzen1.2 Der Algorithmus von Batcher1.3 Hardwarespezifische Adaptionen

2. Quicksort basiertes Sortieren2.1 Sequenzieller Quicksort2.2 Paralleler Quicksort2.3 Hyperquicksort2.4 Regular Sampling

3. Zusammenfassung und Fazit

Teil 1

Teil 2

Page 45: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

45

3 Zusammenfassung und Fazit

• Bitones Sortieren unpraktikabel– „relativ“ schnell bis

• Hyperquicksort im Mittel schnell, hängt jedoch von geschickter Wahl des Pivotelements ab

– Kostenoptimal für Prozessoren

• Für Regular Sampling lässt sich der schlechteste Fall errechnen

– Kostenoptimal für bis Prozessoren

pn 2

3pn

nnp log

Page 46: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

46

Noch Fragen ?

Page 47: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

47

Feierabend

Für weitere Fragen sind wir unter

[email protected] (Ferdinand – 1. Teil)

und

[email protected] (Michael – 2. Teil)

zu erreichen.

Page 48: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

48

Tippfehler Seminararbeiten:

Bei der Erstellung des Foliensatzes sind wir auf je zwei Tippfehler in unseren Seminararbeiten gestoßen.

Als Hilfe für die 5-Pkt. Kandidaten und um inhaltlichen Missverständnissen vorzubeugen haben wir daher die folgenden Folien angehängt, die auf die relevanten Stellen hinweisen.

Page 49: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

49

Tippfehler Seminararbeiten (1):

Ferdinand:

Page 50: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

50

Tippfehler Seminararbeiten (2):

Ferdinand:

Page 51: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

51

Tippfehler Seminararbeiten (3):

Michael:

Page 52: 1 Paralleles Sortieren (bitones Sortieren, Hyperquicksort, Regular Sampling) von Ferdinand Davertzhofen und Michael Stolte

52

Tippfehler Seminararbeiten (4):

Michael: