7.5 PARALLEL SORTING 197There are parallel merge techniques that are beyond the level of this text
that can merge two lists with an optimal cost of O(N) using no more than N /
lgN processors. If we divide the list into N / lg N pieces and then sort these
using an efficient sequential sort, like quicksort, we can use a parallel merge
technique to recombine the pieces into one list. We could also use a parallel
merge algorithm to construct a parallel version of merge sort.7.5.4
- Write a formal parallel algorithm for the counting sort as described in Sec-
tion 7.5.3. Analyze your algorithm for both its speed and its cost. - Write an algorithm for merge sort as described in Section 3.6, using the call
ParallelMergeLists(i, j, k, l) to represent the invocation of the
parallel merge that combines the sublist in locations Mi through Mj and the
sublist in locations Mk through Ml. Analyze your algorithm for both its speed
and its cost. You can assume that ParallelMergeLists takes lg N + 1
steps using N processors, where N is the number of elements in the resulting
list (N = ji + lk + 2).
15 18 13 12 17 11 19 16 14O1 15 18 12 13 11 17 16 19 14E1 15 12 18 11 13 16 17 14 19O2 12 15 11 18 13 16 14 17 19E2 12 11 15 13 18 14 16 17 19O3 11 12 13 15 14 18 16 17 19E3 11 12 13 14 15 16 18 17 19O4 11 12 13 14 15 16 17 18 19E4 11 12 13 14 15 16 17 18 19■FIGURE 7.5
The odd-even
parallel sort■7.5.4 EXERCISES