Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

(bitones Sortieren, Hyperquicksort, Regular Sampling)

Ähnliche Präsentationen


Präsentation zum Thema: "(bitones Sortieren, Hyperquicksort, Regular Sampling)"—  Präsentation transkript:

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

2 Gliederung 1. Bitones Sortieren 1.1 Bitone Sequenzen
1.2 Der Algorithmus von Batcher 1.3 Hardwarespezifische Adaptionen 2. Quicksort basiertes Sortieren 2.1 Sequenzieller Quicksort 2.2 Paralleler Quicksort 2.3 Hyperquicksort 2.4 Regular Sampling 3. Zusammenfassung und Fazit Teil 1 Wir haben versucht das Ganze in etwa nach Umfang und Relevanz der Algorithmen aufzuteilen. Das bitone Sortieren behandeln wir nicht in der Ausführlichkeit wie die quicksort basierten Algorithmen, da es mittlerweile seine praktische Relevanz verloren hat. Teil 2

3 1.1 Bitone Sequenzen 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. d.h.: Stellt man sich vor, daß eine Schleife vom letzten zum ersten Element gelaufen wird, kann die gesamte Sequenz nur genau einen Gipfel und ein Tal haben! Die Beispiele sind in der Abbildung dargestellt... Beispiele: 8, 5, 2, 1, 3, 4, 6, 7 oder C, B, A, E, H, G, F, D.

4 Gliederung 1. Bitones Sortieren 1.1 Bitone Sequenzen
1.2 Der Algorithmus von Batcher 1.3 Hardwarespezifische Adaptionen 2. Quicksort basiertes Sortieren 2.1 Sequenzieller Quicksort 2.2 Paralleler Quicksort 2.3 Hyperquicksort 2.4 Regular Sampling 3. Zusammenfassung und Fazit Teil 1 Teil 2

5 1.2 Der Algorithmus von Batcher
1968 von Kenneth E. Batcher divide & conquer Input: unsortierte Liste von Elementen oder bitone Sequenz Sortieren durch „compare-exchange“-Prinzip: Elementpaar 9 Komparator Reihenfolge prüfen ggf. Elemente austauschen sortiertes Elementpaar = Grundlage für die folgenden Adaptionen

6 1.2 Der Algorithmus von Batcher
1968 von Kenneth E. Batcher divide & conquer Input: unsortierte Liste von Elementen oder bitone Sequenz Sortieren durch „compare-exchange“-Prinzip: Elementpaar Komparatortypen: 9 Komparator Reihenfolge prüfen ggf. Elemente austauschen sortiertes Elementpaar

7 1.2 Der Algorithmus von Batcher
Phase 1: (unsortierte Liste  bitone Sequenz) [optional] Unsortierte Liste der Länge n = Liste von n/2 bitonen Sequenzen der Länge 2 Sortieren von je 2 bitonen Sequenzen; eine aufsteigend, die benachbarte absteigend bitone Sequenz der Länge 4 Rekursiv für alle n/2 bitonen Sequenzen bis eine einzige bitone Sequenz der Länge n erreicht ist Elemente paarweise betrachten Sind jeweils kleinste bitone Sequenzen Eine aufsteigend, die benachbarte absteigend Ergibt zusammengefügt eine bitone Sequenz der doppelten Länge Rekursiv für alle Sequenzen bis eine komplette bitone Sequenz entstanden ist

8 1.2 Der Algorithmus von Batcher
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. Bitone Sequenz in zwei Hälften teilen Positionsmäßig korrespondierende Elemente der beiden Hälften vergleichen Über Komparator min oder max Und ggf. austauschen (je nach Komparatorvorschrift) So dass am Ende in der oberen bitonen Sequenz keine Elemente sind, die kleiner der Elemente der unteren bitonen Sequenz sind

9 1.2 Der Algorithmus von Batcher
Rekursionsschema des Algortihmus (Mischen von n Elementen): Die Abbildung zeigt schematisch einen einzelnen „compare-exchange“-Schritt zur Zerteilung einer bitonen Sequenz in zwei bitone Sequenzen halber Länge.

10 1.2 Der Algorithmus von Batcher
Ablauf der Ausführung: Die Kreise sind Die (roten/ grünen/ gelben) Pfeile sind Die Kästen sind Blau = Phase 1 Rot = Phase 2 Gelbe Pfeile immer unterschiedlich

11 1.2 Der Algorithmus von Batcher
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) =

12 1.2 Der Algorithmus von Batcher
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) = Am vorherigen Beispiel: g(3) = 1+g(2) = = 3 Am vorherigen Beispiel: h(3) = h(2)+g(3) = = 6

13 1.2 Der Algorithmus von Batcher
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) Kosten: Θ(p log2n) Was auch in der Abbildung auf der letzten Folie für n=8 gut zu erkennen ist. -> 6 Spalten -> mit jeweils 4 Vergleichsoperationen Kosten = zeitlicher Aufwand * Anzahl Prozessoren Kostenoptimal = sofern Kosten für par. Alg. <= Aufwand für schnellsten seq. Alg. Kostenoptimalität: auch bei n = p nicht gegeben. [da > Θ(n log n)]

14 Gliederung 1. Bitones Sortieren 1.1 Bitone Sequenzen
1.2 Der Algorithmus von Batcher 1.3 Hardwarespezifische Adaptionen 2. Quicksort basiertes Sortieren 2.1 Sequenzieller Quicksort 2.2 Paralleler Quicksort 2.3 Hyperquicksort 2.4 Regular Sampling 3. Zusammenfassung und Fazit Teil 1 Zu diesem Kapitel ist zu sagen, dass wir beide es nicht in gleicher Art und gleichem Umfang bearbeitet haben. Es gibt mehrere hardwarespezifische Adaptionen für Batchers Sortierverfahren – allein im Quinn stehen 3. Also haben wir für die Präsentation ein einzelnes Kapitel daraus gemacht, um nur eine kurze Vorstellung davon zu vermitteln welche Ansätze es gibt und welchen Zweck diese hatten. Außerdem würden wir beide uns dafür einsetzen, dass nicht die hardwarespezifischen Adaptionen des bitonen Sortierens, sondern die drei von uns beschriebenen Hauptalgorithmen Thema der 5 Punkte Prüfung sind. Um Euch bei diesem doch sehr komplexen Seminar etwas zu entlasten. Teil 2

15 1.3 Hardwarespezifische Adaptionen
Im Shuffle-Exchange Netzwerk (1) (1971 von Harold S. Stone)  Die Eigenschaften von Shuffle-Exchange Netzwerken ermö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. Maskenvektor Komparatoren nicht abwechselnd, sondern auf Basis des Maskenvektors Alternativ: Oberes Element geht in den gleichen Komparatortyp, aus dem es kommt.

16 1.3 Hardwarespezifische Adaptionen
Im Shuffle-Exchange Netzwerk (1) (1971 von Harold S. Stone)  Die Eigenschaften von Shuffle-Exchange Netzwerken ermö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. Maskenvektor Komparatoren nicht abwechselnd, sondern auf Basis des Maskenvektors Alternativ: Oberes Element geht in den gleichen Komparatortyp, aus dem es kommt.

17 1.3 Hardwarespezifische Adaptionen
Im Shuffle-Exchange Netzwerk (2) Mit Ausnahme der ersten Spalte, die die unsortierten Elemente enthält, stellt jede Spalte der Abbildung eine Ebene der Rekursion dar. Die mit einem „+“ oder „-“ versehenden Rechtecke repräsentieren Vergleichsoperationen, wobei ein „+“ niedrigere Werte über höheren Werten bedingt sowie ein Minus den umgekehrten Fall. Die Vergleichsoperationen dienen der Umsetzung der zuvor angegebenen formalen Aufteilungsvorschrift. Trifft die Bedingung bei einem Vergleich nicht zu (Blitz), werden die entsprechenden Elemente vertauscht. Trifft die Bedingung zu (Haken), werden die Elemente übernommen. Das Vertauschen bzw. Übernehmen wird durch die aus den Vergleichsoperationen führenden Pfeile dargestellt.

18 1.3 Hardwarespezifische Adaptionen
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] Hierbei ist zu beachten, dass die Entscheidung, ob absteigend („+“) oder aufsteigend („-“) sortiert werden soll nicht wie bei Batchers Algorithmus mit Ausnahme der Bedingung des Abwechselns beliebig ist, sondern diese einem speziellen Muster folgt. Stones Fassung des Algorithmus setzt die Benutzung eines Maskenvektors voraus, welcher zur Bestimmung des einzusetzenden Vergleichsoperators dient. Alternativ kann man den Operatortyp auch wie folgt bestimmen: Für die jeweils von ihrer Anordnung her geraden Elemente einer zu sortieren Folge gilt: Kommt das Element aus einem „+“‑Vergleich, so führt es wiederum zu einem „+“-Vergleich. Gleiches gilt für „-“‑Vergleiche. Die ungeraden Elemente gehen dem Shuffeling entsprechend ein.

19 1.3 Hardwarespezifische Adaptionen
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 Das Neuverteilen erfolgt auf die Posi auf der verglichen wurde, sowie die Posi, von der das andere Elem gekommen ist. Das kleinere geht zurück auf die Posi von der das andere gekommen ist. Welches geholt wird, und welches sich nicht bewegen muss, bestimmt die Indexfunktion.

20 1.3 Hardwarespezifische Adaptionen
Im 2-dimensionalen Gitternetzwerk (2) 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. Welche Elemente mit einander verglichen werden, hängt von der Signifikanz der sich exklusiv unterscheidenden Bits ab; in welche Richtung die Bewegung für die Vergleichsoperation abläuft, gibt die Indexfunktion vor. Jede Linie steht hierbei für eine Position innerhalb des Gitternetzwerkes, wobei Pfeile zwischen den Linien einzelne „compare-exchange“‑Vorgänge repräsentieren. Die Spitze eines Pfeils zeigt die Richtung an, in die das Element für die Vergleichsoperation bewegt wird. Das jenige Element, welches kleiner ist, wird an den Ausgangspunkt des Pfeiles zurückgeschoben.

21 1.3 Hardwarespezifische Adaptionen
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! ] Verweis auf Quinn… (Tippfehler in der Ausarbeitung.. S9 – muss ein großes statt ein kleines N sein!)

22 Gliederung 1. Bitones Sortieren 1.1 Bitone Sequenzen
1.2 Der Algorithmus von Batcher 1.3 Hardwarespezifische Adaptionen 2. Quicksort basiertes Sortieren 2.1 Sequenzieller Quicksort 2.2 Paralleler Quicksort 2.3 Hyperquicksort 2.4 Regular Sampling 3. Zusammenfassung und Fazit Teil 1 Teil 2

23 2.1 Sequenzieller Quicksort
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

24 Gliederung 1. Bitones Sortieren 1.1 Bitone Sequenzen
1.2 Der Algorithmus von Batcher 1.3 Hardwarespezifische Adaptionen 2. Quicksort basiertes Sortieren 2.1 Sequenzieller Quicksort 2.2 Paralleler Quicksort 2.3 Hyperquicksort 2.4 Regular Sampling 3. Zusammenfassung und Fazit Teil 1 Teil 2

25 2.2 Paralleler Quicksort = „Naiver Ansatz“
Trotz echtem Median als Pivotelement: 1. Ebene: n-1Vergleiche von nur einem Prozessor 2. Ebene: n-3 Vergleiche von nur 2 Prozessoren 3. Ebene: n-7 Vergleiche von nur 4 Prozessoren … Der Algorithmus wird von mehreren Prozessoren parallel ausgeführt, wobei in Schritt 1 jeweils versucht wird, eine Index-Teilliste durch ein „pop“ vom Stack zu nehmen. In Schritt 2 wird ein Pivotelement bestimmt und die Liste entsprechend in zwei Teillisten zerlegt. Schritt 3 legt eine der neu erstellten Teillisten durch ein „push“ zurück auf den Stack und ermöglicht es so, einem anderen Prozessor in die Bearbeitung einzusteigen. Schritt 4 springt durch eine entsprechende Rekursion weiter zu Schritt 2, also der erneuten Zerlegung der Teilliste.

26 Timeout & Spielerwechsel…
Bzgl. Literatur wird natürlich auf Quinn verwiesen.

27 Gliederung 1. Bitones Sortieren 1.1 Bitone Sequenzen
1.2 Der Algorithmus von Batcher 1.3 Hardwarespezifische Adaptionen 2. Quicksort basiertes Sortieren 2.1 Sequenzieller Quicksort 2.2 Paralleler Quicksort 2.3 Hyperquicksort 2.4 Regular Sampling 3. Zusammenfassung und Fazit Teil 1 Teil 2

28 2.3 Hyperquicksort 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

29 2.3 Hyperquicksort Sortiereigenschaft in Multiprozessornetzwerk:
Jede lokale Folge eines Prozessors ist sortiert und 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 Zu Phase 1: Erläutern, dass die Folge auf die Prozessoren aufgeteilt wird.

30 2.3 Hyperquicksort Zerlegen eines d-dimensionale Hypercubes in zwei Hypercubes der Dimension d-1 Teilung ist lediglich eine Betrachtungsweise. Kommunikationsverbindungen bleiben ja bestehen. d = 3 d = 2

31 2.3 Hyperquicksort 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. Bedingung nochmal erläutern

32 2.3 Hyperquicksort Beispiel: Zahlenfolge mit 32 Elementen in einem 2-Dimensionalen Hypercube Teilung ist lediglich eine Betrachtungsweise. Kommunikationsverbindungen bleiben ja bestehen. d = 2

33 2.3 Hyperquicksort 1. Phase: Lokales Sortieren

34 2.3 Hyperquicksort 2. Phase: Erste Iteration: Dimension d-1 !

35 2.3 Hyperquicksort 2. Phase: Zweite Iteration: Dimension d-1 !

36 2.3 Hyperquicksort Aufwand: Quicksort
Versenden des Pivotelemente (Broadcast) Teilen der lokalen Folge Versenden der Teilfolgen Quicksort – klar. Broadcast, es werden jeweils in jedem schritt d-i+1 Elemente versendet: 6,5,4,3,2 Teilen der Folge: Da Folge sortiert n/n Vergleiche. Die Prozessoren, die die Pivotelemente abgeschickt haben müssen nicht mehr suchen und werden in jedem Schritt mehr. Daher logabnahme ! Versenden der Teilfolgen. Jeder versendet eine und muss eine annehmen. Im Mittel ! Sortieren mittels mischen: vorsortiert, daher nur n/p Vergleiche Aussuchen des Pivotelementes = konstante Zeit, da Median angenommen wird. Sortieren mittels Mischen

37 2.3 Hyperquicksort Gesamtaufwand Für ist der zweite Term
 Kosten Für ist der zweite Term  Für ist Hyperquicksort kostenoptimal.

38 Gliederung 1. Bitones Sortieren 1.1 Bitone Sequenzen
1.2 Der Algorithmus von Batcher 1.3 Hardwarespezifische Adaptionen 2. Quicksort basiertes Sortieren 2.1 Sequenzieller Quicksort 2.2 Paralleler Quicksort 2.3 Hyperquicksort 2.4 Regular Sampling 3. Zusammenfassung und Fazit Teil 1 Teil 2

39 2.4 Regular Sampling Li et Al., 1992 Weitere Bezeichnungen:
Sortieren durch Regular Sampling Sortieren durch Zerlegen des Wertebereichs Sample-Sort Vorgehen an einem konkreten Beispiel

40 2.4 Regular Sampling p1 p2 p3 Aufteilen Lokales Sortieren
Positionen: 1, (n/p2) +1, (2n/p2)+1, ..., (p-1)(n/p2)+1 Ausgewählter Prozessor

41 2.4 Regular Sampling p1 p2 p3 Teilen Versenden der Teilfolgen
Lokales Sortieren

42 2.4 Regular Sampling Aufwand: Quicksort Versenden der Regular Samples
Sortieren der Samples Auswahl und Broadcast der Pivotelemente Versenden von p^2 Samples, die ein Prozessor sequenziell annehmen muss. Mittels Quicksort p^2 Elemente sortieren, logarithmus gesetz. Versenden der Teilfolgen. Jeder Prozessor wird im schlechtesten Fall 2n/p Elemente annehmen. 2 und p kürzen sich raus. Sortieren der Teilfolgen...schlechtester Fall. Versenden der Teilfolgen [Quinn] Sortieren der Teilfolgen durch Mischen

43 2.4 Regular Sampling  Gesamtaufwand  Kosten Für
ist der Algorithmus kostenoptimal, da erster Term dominiert !

44 Gliederung 1. Bitones Sortieren 1.1 Bitone Sequenzen
1.2 Der Algorithmus von Batcher 1.3 Hardwarespezifische Adaptionen 2. Quicksort basiertes Sortieren 2.1 Sequenzieller Quicksort 2.2 Paralleler Quicksort 2.3 Hyperquicksort 2.4 Regular Sampling 3. Zusammenfassung und Fazit Teil 1 Teil 2

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 Relativ schnell = Nie kostenoptimal

46 Noch Fragen ? Bzgl. Literatur wird natürlich auf Quinn verwiesen.

47 Feierabend J Für weitere Fragen sind wir unter
(Ferdinand – 1. Teil) und (Michael – 2. Teil) zu erreichen.

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.

49 Tippfehler Seminararbeiten (1):
Ferdinand:

50 Tippfehler Seminararbeiten (2):
Ferdinand:

51 Tippfehler Seminararbeiten (3):
Michael:

52 Tippfehler Seminararbeiten (4):
Michael:


Herunterladen ppt "(bitones Sortieren, Hyperquicksort, Regular Sampling)"

Ähnliche Präsentationen


Google-Anzeigen