An Extension to Simplescalar for Multicore Architecture Simulation

An Efficient Decentralized Algorithm
for the Distributed Trigger Counting
Problem (DTCP)
Venkatesan Chakravarthy, IBM India Research Lab
Anamitra R. Choudhury, IBM India Research Lab
Vijay K. Garg, University of Texas at Austin
Yogish Sabharwal, IBM India Research Lab
Disc 2010
Distributed Trigger Counting
Problem (DTCP)



.
Distributed system with n processors
Each processor receives some triggers from an external
source
Report to the user when the number of triggers received
equals w
Applications of DTCP

Distributed monitoring



Global Snapshots:

.
traffic volume : raise an alarm if #vehicles on a highway
exceeds some threshold
wildlife behavior: #sightings of a particular species in a
wildlife region exceeds a value.
the distributed system must determine if all in-transit
messages have been received to declare snapshot valid.
This problem reduces to DTCP [Garg, Garg, Sabharwal
2006]
Assumptions:




complete graph model, i.e., any processor can
communicate with any other processor
asynchronous model of computation and messages.
reliable message delivery and
no faults in the processors.
Objectives of the DTC Algorithm:


Low message complexity
Low MaxLoad, i.e., the maximum number of
messages received by any processor in the system.
Main Result:
LayeredRand, a decentralized randomized algorithm.

Theorem: For any trigger pattern, the message complexity of
the LayeredRand algorithm is O(n log n log w). Also, there
exists constants c,d > 1 such that
Pr[MaxLoad > c log n log w] < 1/nd
Algorithm
Message
Complexity
MaxLoad
Centralized
[Garg et al]
O(n log w)
O(n log w)
LayeredRand
O(n log n log w)
O(log n log w)
Open
O(n log w)
O(log n log w)
LayeredRand Algorithm






n = (2L -1) processors
arranged in L layers
lth layer has 2l processors,
l=0 to L-1
Algorithm proceeds in multiple rounds.
w’: initial value of a round (number of triggers yet to be
received)


w
Threshold for lth layer defined as l  

l
 4  2  log( n  1) 
C(x): sum of triggers received by x and some
processors in layers below.
LayeredRand Algorithm (Contd.)

For non-root processor x at layer l


If a trigger is received: C(x)++ ;
If C(x)>= τ(l)




pick a processor y from level l-1 at random and send a coin to y.
C(x) := C(x) - τ(l);
If a coin is received from level l+1: C(x) :=C(x)+ τ(l+1).
Root r


maintains C(r) just like others.
 w 
If C(r) >  2  , initiate end-of-round procedure


gets total number of triggers received in this round
broadcasts new value of w’ for next round.
Example
w’ = 96
End of round
w’ for next round
= 96- 53 = 43
49
45
6
2
τ(1) = 4
τ(2) = 2



3
1
5
1
2
1
3
4
1
2
1
1
2
System does not stall in the middle of a round, when all
the triggers have been delivered.
thresholds => message complexity to O(n log n log w)
Random selection of processors for sending coins
bounds the MaxLoad to O(log n log w)