Linked List Ranking

advertisement
Linked List Ranking
Parallel Algorithms
1
Work Analysis – Pointer Jumping
Number of Steps: Tp = O(Log N)
Number of Processors: N
Work = O(N log N)
T1 = O(N)
Work Optimal??
2
Common List Ranking Strategy
Reduce Rank Expand Strategy
Similar to Odd-Even Prefix Sums
Algorithms vary in how items are
selected for deletion in the Reduce
Step
Some variation in the Expand
Step.
3
Reduce Rank Expand
Reduction Step - Delete non-adjacent
elements in parallel until the list is of size
O(p) (algorithms vary is this step)
Rank Step – Pointer jumping to rank the p
remaining elements
Expand Step – Reinsert elements (in the
reverse order), computing the rank as it is
inserted
4
Asynchronous PRAM – APRAM
Variant of the PRAM model
Features of CRCW PRAM – Plus
Processors may have different clock
speeds and work asynchronously
Each processor has own random
number generator
5
Randomized Algorithm
Some portion of the algorithm’s outcome is
non-deterministic
Performance stated in terms of expected
order of time complexity – EO(f(n))
EO(f(n)) – with high probability the results
are within order f(n)
6
APRAM List Ranking
by Martel & Subramonian
1. Select m=EO(n/log n) elements at random
1. Each generates a random number between 1-N, selects
those with values 1 to N / log N
2. Perform log log n iterations of pointer jumping
1. Each points to selected, nil, or pointer length log n
3.
4.
5.
6.
Pack selected elements to smaller array
Scan: each selected points to next selected or nil
Compute ranks of selected list-pointer jumping
Copy back to original list; scan to complete ranks
*EO(n log log n) using p = O(n/log n)
7
Demo: APRAM Randomized Algorithm
List
0
3
6
8
5
1
2
4
11 0
7
10 14 12 15 13
Rank
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
R#
3
8
10 3
9
13 16 11 2
15 7
1
8
6
4
12
Sel
*
*
*
*
*
List
0
8
11
10
15
Rank
3
5
3
3
2
16
13
8
5
2
1
Step1
Step2
Step3
Rank
Step4
Rank
16 15 14 13 12 11 10 9
8
7
6
5
4
3
2
18
Modifications for EREW Model
APRAM
 Each PU operates
asynchronously
Must synchronize
each at step
 Steps 2, 4, 6 allow for
Concurrent Reads
EREW
 Default execution is
synchronous
 Partition the array to
eliminate Concurrent
Reads
9
Randomized EREW Algorithm (4.1)
 Select O(p) elements at random
Each generates a random number between
1-N, selects those with values 1 to N / log N
 Pack selected items into smaller array
 Scan from selected item to next to set rank
 Rank selected elements by pointer jumping
 Write ranks back to original array
 Scan from selected items to set remaining
ranks
10
Demo: EREW Randomized Algorithm
List
0
3
6
8
5
1
2
4
11 0
7
10 14 12 15 13
Rank
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
R#
3
8
10 3
9
13 16 11 2
15 7
1
8
6
4
12
Sel
*
*
*
*
*
List
0
8
11
10
15
Rank
3
5
3
3
2
16
13
8
5
2
1
Step1
Stp2
Stp3
Rank
Stp4
Rank
16 15 14 13 12 11 10 9
8
7
6
5
4
3
2
111
Complexity Analysis
 Selection - EO(n/p)
 Compaction - prefix sums EO(n/p + log p)
 Form LL - EO(n/p)
 Pointer Jumping - EO ( n/p + log p)
 Sequential Scan - EO(n/p)
 OVERALL - EO ( n/p + log p)
 Optimal speedup for p <= O (n / log n)
 Which gives EO ( log n) time
 See paper for proof.
12
What next??
Can we accomplish an O(log n)
deterministic algorithm?
What was randomized in other
algorithms?
Can it be made deterministic?
13
Answer!
Yes & No,
Can Reduce deterministically!
Near Optimal
2-Ruling Set (Cole & Vishkin)
A subset of the list such that no 2 elements are
adjacent & there are exactly 1 or 2 non-ruling set
elements between each ruling set element & its
nearest successor
14
Deterministic EREW LLR
Step 1
Select a Ruling Set of O(p) elements,
O(n/p) distance apart
Keep track of actual distance (for ranking)
Repeatedly apply 2-Ruling Set Algorithm to
increase the distance between the elements
Remaining steps are same
15
Complexity Analysis
1. Select O(p) elements O(n/p) distance apart –
O(n/p * log (n/p))
2. Compact – O(n/p + log p)
3. Rank – O(n/p + log p)
4. Write back then Scan – O(n/p)
O((log p) + (n/p) * log(n/p))
= O(n/p * log (n/p) ) for n>= p log p
= O(log n log log n) for p =O(n/log n)
Work O(n log log n)
16
17
Advantages of New Algorithms
Simple, use basic strategies
Small constants
Small space requirements
Optimal & Near Optimal
18
Download