Parallel Sorting Algorithm.ppt

advertisement
Parallel Sorting Algorithm
1
Bitonic Mergesort
Bitonic Sequence
A bitonic sequence is defined as a list with no more than one
LOCAL MAXIMUM and no more than one LOCAL MINIMUM.
(Endpoints must be considered - wraparound )
2
A bitonic sequence is a list with no more than one LOCAL
MAXIMUM and no more than one LOCAL MINIMUM.
(Endpoints must be considered - wraparound )
This is ok!
1 Local MAX; 1 Local MIN
The list is bitonic!
This is NOT bitonic! Why?
1 Local MAX; 2 Local MINs
3
Binary Split
1.
2.
Divide the bitonic list into two equal halves.
Compare-Exchange each item on the first half
with the corresponding item in the second half.
Result:
Two bitonic sequences where the numbers in one sequence are all less
than the numbers in the other sequence.
4
Repeated application of binary split
Bitonic list:
24 20 15 9 4 2 5 8
|
10 11 12 13 22 30 32 45
|
24 20 15 13 22 30 32 45
Result after Binary-split:
10 11 12 9 4 2 5 8
If you keep applying the BINARY-SPLIT to each half repeatedly, you
will get a SORTED LIST !
10 11 12 9 . 4 2 5 8 | 24 20
4 2 . 5 8 10 11 . 12 9 | 22 20
4 . 2 5 . 8 10 . 9 12 .11
15 . 13
2 4 5 8 9 10 11 12
13 15
15 13 . 22 30 32 45
. 15 13 24 30 . 32 45
22 . 20 24 . 30 32 . 45
20 22 24 30 32 45
Q: How many parallel steps does it take to sort ?
A: log n
Sorting a bitonic sequence
Compare-and-exchange moves smaller numbers of each pair to left
and larger numbers of pair to right.
Given a bitonic sequence,
recursively performing ‘binary split’ will sort the list.
6
Download