Download presentation
Presentation is loading. Please wait.
1
Max Registers, Counters, and Monotone Circuits James Aspnes, Yale University Hagit Attiya, Technion Keren Censor, Technion PODC 2009
2
Counting Counting is critical for some programs in multiprocessing systems Example: Algorithms for randomized consensus Required: Counters with sub-linear (in the number of processes n) step complexity per operation PODC 2009 2 012
3
Counter Model: System of n processes Asynchronous system: no timing assumptions Implement using shared Read/Write registers Crash failures: require wait-free implementations Can be implemented using snapshots in linear time (in n) PODC 2009 3 Counter increment ok readCounter v +1
4
Related work Lower bound of Ω (n) for time complexity by Jayanti, Tan, and Toueg [PODC 1996] and similar lower bounds by Ellen, Hendler, and Shavit [FOCS 2005] Motivated work on approximate counting [Aspnes and C, SODA 2009] PODC 2009 4
5
Exact counting Give up on sub-linear exact counting? Or inspect lower bound more carefully: Based on executions with many increments But some applications use a small number of increments We show an implementation of a bounded counter where each operation takes sub-linear time PODC 2009 5 long operation
6
A tree-based counter s1s1 s1s1 s2s2 s2s2 s3s3 s3s3 snsn snsn s4s4 s4s4 … s 1 +s 2 s 3 +s 4 s 1 +...+s 4 ∑s i … … s n-1 +s n ReadCounter : return value at root Increment : recursively increment from leaf to root +1 p 1 increments update p k reads PODC 2009 6 O(log n) steps to increment O(1) steps to read counter
7
Seems nice, but… If each node is a multi-writer register, then even for 2 processes and 2 increments this does not work s1s1 s1s1 s2s2 s2s2 s 1 +s 2 +1 p 1 increments PODC 2009 p 2 increments +1 update 1 update 2 Counter is incorrect 7
8
Max register Replace multi-writer registers with Max Registers In this case the tree-based counter works If max registers are linearizable then so is counter PODC 2009 8 Max Register WriteMax( v ) ok ReadMax v Maximal value previously written
9
A tree-based counter s1s1 s1s1 s2s2 s2s2 s3s3 s3s3 snsn snsn s4s4 s4s4 … s 1 +s 2 s 3 +s 4 s 1 +...+s 4 ∑s i … … s n-1 +s n ReadCounter : return value at root Increment : recursively increment from leaf to root PODC 2009 9
10
Max register – recursive construction MaxReg 0 : Max register that supports only the value 0 WriteMax is a no-op, and ReadMax returns 0 MaxReg 1 supports values in {0,1} Built from two MaxReg 0 objects and one additional multi-writer register “switch” PODC 2009 MaxReg 0 10 MaxReg 0 switch WriteMax 0 0 1 1 =1 ReadMax = ? switch=0 : return 0 switch=1 : return 1
11
Max register – recursive construction MaxReg k supports values in {0,…,2 k -1} Built from two MaxReg k-1 objects with values in {0,…,2 k-1 -1} and one additional multi-writer register “switch” PODC 2009 MaxReg k-1 MaxReg k switch WriteMax t t t t < 2 k-1 ? t t t -2 k-1 ReadMax =1 = ? t t t t switch=0 : return t switch=1 : return t +2 k-1 11
12
MaxReg k unfolded PODC 2009 switch MaxReg 0 … switch MaxReg 0 … … Complexity does not depend on n: WriteMax and ReadMax in O(k) steps MaxReg k 12
13
A tree-based counter s1s1 s1s1 s2s2 s2s2 s3s3 s3s3 snsn snsn s4s4 s4s4 … s 1 +s 2 s 3 +s 4 s 1 +...+s 4 ∑s i … … s n-1 +s n ReadCounter : return value at root Increment : recursively increment from leaf to root PODC 2009 13 m-valued counter: ReadCounter : O(log m) steps Increment : O(log n log m) steps
14
Analysis Inductive linearizability proof No contradiction with lower bound of JTT because of bounded size of max register and counter Extension to unbounded max registers (and counters) with complexity according to value written or read Both WriteMax and ReadMax of value v take O(min(log v, n)) steps PODC 2009 14
15
Lower bound of min(log m, n-1) S m = {executions with WriteMax operations up to value m by p 1 …,p n-1, followed by one ReadMax operation by p n } T(m,n) = worst case cost of ReadMax in S m PODC 2009 15 p n reads
16
Lower bound of min(log m, n-1) No process takes steps after p n so p n does not write Reads a fixed register R. Did anyone write to R? k = minimal such that there is a write to R in S k No one in S k-1 writes to R so T(m,n)≥T(k-1,n)+1 PODC 2009 16 p n reads R
17
Lower bound of min(log m, n-1) In addition, consider a run in S k that writes to R PODC 2009 17 write to R by p i Finish writes except by p i Non-concurrent writes in {k,…,m} write to R by p i T(m,n) ≥ T(m-k+1,n-1)+1 p n returns maximal value from {k,…,m} p n reads Solve recurrence: T(m,n) ≥ 1+ min k {max(T(k-1,n), T(m-k+1,n-1))}, we had T(m,n)≥T(k-1,n)+1 R R p n reads
18
Summary Implementation of max registers with O(min(log v, n)) steps per operation writing or reading the value v Sub-linear implementation of counters Extension of counters to any monotone circuit with monotone consistency instead of linearizability PODC 2009 18
19
Summary Lower bounds An alternative proof for JTT Tight lower bound for max registers Same lower bound proof for counters Further research: close gap between upper and lower bounds on counters Randomized lower bound Further research: randomized algorithm? Take-home message: Lower bounds do not always have the final say PODC 2009 19
20
Thank you PODC 2009 20
21
Unbalanced tree PODC 2009 MaxReg 0 … switch MaxReg 0 21 Bentley and Yao [1976] switch MaxReg 0 Leaf i is at depth O(log i)
22
Unbounded max register PODC 2009 MaxReg 0 … switch Snapshot-based counter switch MaxReg 0 WriteMax and ReadMax of v in O(min(log v, n)) steps 22
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.