3. Paralleles Sortieren
Ein klassisches algorithmisches Problem ist das Sortieren. Im Zusammenhang
von parallelen Algorithem ist dies sogar noch zentraler, weil viele
weitere parallele Algorithmen das Sortieren als Baustein verwenden.
Beim Sortieren betrachten wir eine geordnete Menge
Sortiernetzwerke
Wir kehren zeitweise zurück zu unserer Schaltkreis-Metapher. Ein Gate ist
hier nun kein logisches Gate, sondern ein Vergleichs-Gate. Eingaben
sind zwei Elemente
In Kapitel 3.1 werden wir Batchers Merge- und
Sortiernetzwerk kennenlernen, also ein Schaltkreis, bestehend aus Vergleichs-Gates, der
seine Inputs sortiert. Es besteht aus
Parallele Sortieralgorithemn
Jedes Sortiernetzwerk kann auf einer CREW PRAM implementiert werden (z.B. können wir jedem Gate
einen Prozessor zuordnen). Andersum allerdings nicht unbedingt. In einem allgemeinen
CREW-PRAM-Algorithmus
kann ein Prozessor zum Beispiel
Vergleichsoperationen und andere Operationen
Wenn wir sequentielle Sortieralgorithmen untersuchen, dann
geben wir statt deren Laufzeitkomplexität gerne an, wie viele Vergleichsoperationen
sie im Worst Case / Expected Case vornehmen. So tätigt
Selectionsort in jedem Fall
Als krönenden Abschluss lernen wir in
Kapitel 3.4 Coles parallelen Mergesort-Algorithmus
kennen. Dieser erreicht den "heiligen Gral", nämlich ein Array in
Literatur
-
M. Ajtai, J. Komlós, E. Szemerédi, An
sorting network. In STOC '83: Proceedings of the fifteenth annual ACM symposium on Theory of computing, Page 1-9. - Richard Cole, Parallel merge sort. In SIAM Journal on Computing, Volume 17, Number 4 (1988).
- Torben Hagerup, A pictorial description of Cole's parallel merge sort. In Efficient Algorithms, Essays Dedicated to Kurt Mehlhorn on the Occasion of His 60th Birthday, pages 143-157.
- Leslie G. Valiant, Parallelism in comparison problems. In SIAM Journal on Computing, Volume 4, Issue 3 (1975).