Title: Efficient Incremental Optimal Chain Partition of Distributed Program Traces
1Efficient Incremental Optimal Chain Partition of
Distributed Program Traces
Parallel and Distributed Systems Laboratory
2Outline
- Introduction and Motivation
- Problem definition
- Outline two previous algorithms
- Offline vs Incremental -gt Experimental Results
- New Incremental algorithm
- Experimental Results
- Concluding Remarks
3Software testing and debugging
- Commercial software has large number of
components - Verification
- Formal proof of correctness is not feasible
- Predicate detection (Runtime verification)
- simulation formal methods
- Debugging
- Large number of states
- Abstraction or grouping of states/processes
4Distributed Computation as Partial order set
- Partial-order models
- Poset (X,P)
- X is a set
- P is antisymmetric, reflexive, and transitive
binary relation on X - Lamport 1978 happened-before relation
- f1 ? e3 ? c(f1) lt c(e3)
- Fidge 1991 Mattern 1989 vector-clocks
- f1 ? e3 ? c(f1) lt c(e3)
(1,0,0)
(2,2,0)
(3,2,0)
P1
e1
e2
e3
(0,1,0)
(0,2,0)
(0,3,0)
P2
f1
f2
f3
(0,2,1)
(3,2,2)
P3
g1
g2
5Optimal chain partition of a poset
- Width
- the size of the largest antichain (a subset of
poset whose every distinct pair is mutually
incomparable) - A poset cannot be partition into k chains if k lt
width(P) R.P. Dilworth - Debugging
- Visualization
- Testing Analyzing
- Bounded sum predicates (x1 x2 x3 lt k)
- Mutual exclusion violation
6Mutual exclusion violation example
C1
C2
C3
(1,0,0)
(2,2,0)
(3,2,0)
P1
(1,0,0)
(0,2,0)
(3,2,2)
(0,1,0)
(0,3,0)
(0,2,0)
(3,2,0)
(0,3,0)
P2
(3,2,2)
(0,2,1)
P3
Critical event
7Problem definition Previous algorithms
- Problem definition
- Given a chain partition of P, C C1, . . . ,CN
into N disjoint chains, rearrange these chains
into a chain partition with the fewest number of
chains. - Previous algorithms that answer the question
given k chains whether it is possible to
partition it into k-1 chains. - Bogart and Magagnosc
- BM
- Tomlinson and Garg
- TG
8Bogart Magagnosc
- A sequence of elements a0,b0,a1,b1,,as,bs is a
reducing sequence if - a0 is the least element of some chain,
- bi is the immediate predecessor of ai1 in some
chain, - all bis are distinct,
- for all i ai gt bi in the partial order,
- bs is the greatest element of its chain.
C1
C3
C2
(0,0,1)
(1,0,0)
(0,1,0)
(0,0,2)
(2,0,0)
(0,2,0)
(0,0,3)
(3,0,0)
(0,3,0)
C4
(0,3,7)
(3,4,0)
(0,0,4)
(0,3,8)
(3,5,0)
(0,0,5)
(0,0,6)
9Tomlinson and Garg
Output Chains
-
-
-
(0,0,1)
(0,0,1)
(1,0,0)
(0,1,0)
(0,0,4)
Input Chains
(0,0,2)
(2,0,0)
(0,2,0)
(0,0,5)
(0,0,3)
(3,0,0)
(0,3,0)
(0,0,6)
(0,3,7)
(3,4,0)
(0,3,8)
(3,5,0)
10Tomlinson and Garg
(0,0,1)
Output Chains
(0,0,1)
(0,0,2)
-
-
(0,0,2)
(0,0,3)
(0,1,0)
(1,0,0)
(0,1,0)
(0,0,3)
(0,0,4)
(0,3,7)
(0,2,0)
Input Chains
(2,0,0)
(0,2,0)
(0,3,7)
(0,0,5)
(0,3,8)
(0,3,0)
(3,0,0)
(0,3,0)
(0,3,8)
(0,0,6)
(3,4,0)
(3,4,0)
(3,5,0)
(3,5,0)
11Tomlinson and Garg
(0,0,1)
(0,1,0)
Output Chains
(0,0,2)
(0,1,0)
(0,2,0)
-
-
(0,0,3)
(0,2,0)
-
(0,3,0)
(1,0,0)
(0,0,4)
(0,3,7)
(0,3,0)
(3,4,0)
Input Chains
(2,0,0)
(0,0,5)
(0,3,8)
(3,4,0)
(3,5,0)
(3,0,0)
(0,0,6)
(3,5,0)
12Tomlinson and Garg
(0,0,1)
(0,1,0)
Output Chains
(0,0,2)
(0,2,0)
(1,0,0)
(0,0,3)
(0,3,0)
(1,0,0)
(2,0,0)
(2,0,0)
(0,0,4)
(0,3,7)
(3,4,0)
(3,0,0)
Input Chains
(3,0,0)
(0,0,5)
(0,3,8)
(3,5,0)
(0,0,6)
13Tomlinson and Garg
(0,0,1)
(0,1,0)
(1,0,0)
Output Chains
(0,0,2)
(0,2,0)
(2,0,0)
(0,0,3)
(0,3,0)
(3,0,0)
(0,0,4)
(0,3,7)
(3,4,0)
-
Input Chains
(0,0,5)
(0,3,8)
(3,5,0)
(0,0,6)
14Tomlinson and Garg
(0,0,1)
(0,1,0)
(1,0,0)
Output Chains
(0,0,2)
(0,2,0)
(2,0,0)
(0,0,3)
(0,3,0)
(3,0,0)
(0,0,4)
(0,3,7)
(3,4,0)
(0,0,5)
(0,3,8)
(3,5,0)
(0,0,6)
Input Chains
-
-
-
15Offline vs Incremental
- Offline
- Call BM or TG algorithm until there is no further
reduction in the number of chains
- Incremental (Naïve)
- Place the new element into a new chain, and call
the BM or TG algorithm
16Linear extension hypothesis Bouchitte Rampon
- Let f be the new event, then we assume that all
the events happed before f are already arrived
and processed.
f
17Memory Usage
18Running times
19Idea behind Chain Partitioner
Maximum antichain
- New element
- No effect
- Updates the maximum antichain
- Expands the maximum antichain
- ?
- Given the maximum antichain, its sufficient to
compare the new element with the maximum
antichain
20CP example
Linearization
21CP example
(1,2,1)
(1,2,3)
(1,2,0)
(2,3,0)
(2,4,1)
(0,1,0)
(2,0,0)
(3,0,0)
4,3,0)
(1,0,0)
Merge
CP
H O Q
k 3
(1,0,0)
(0,1,0)
(2,0,0)
(1,0,0)
(0,1,0)
(2,0,0)
(1,2,0)
(1,2,0)
22CP example
(1,2,1)
(1,2,3)
(1,2,0)
(2,3,0)
(2,4,1)
(0,1,0)
(2,0,0)
(3,0,0)
4,3,0)
(1,0,0)
Merge
CP
H O Q
-
-
(1,0,0)
-
-
k 3
(1,0,0)
(0,1,0)
(2,0,0)
(1,0,0)
(0,1,0)
(2,0,0)
(1,2,0)
(1,2,0)
(1,2,0)
23CP example
(1,2,1)
(1,2,3)
(1,2,0)
(2,3,0)
(2,4,1)
(0,1,0)
(2,0,0)
(3,0,0)
4,3,0)
(1,0,0)
Merge
CP
H O Q
-
(1,0,0)
(0,1,0)
-
-
k 3
(1,0,0)
(0,1,0)
(2,0,0)
(0,1,0)
(2,0,0)
(1,2,0)
(1,2,0)
24CP example
(1,2,1)
(1,2,3)
(1,2,0)
(2,3,0)
(2,4,1)
(0,1,0)
(2,0,0)
(3,0,0)
4,3,0)
(1,0,0)
Merge
CP
H O Q
(1,0,0)
(0,1,0)
(2,0,0)
(1,2,0)
k 3
(1,0,0)
(0,1,0)
(2,0,0)
(1,2,0)
25CP example
(1,2,1)
(1,2,3)
(1,2,0)
(2,3,0)
(2,4,1)
(0,1,0)
(2,0,0)
(3,0,0)
4,3,0)
(1,0,0)
Merge
CP
H O Q
(1,0,0)
(0,1,0)
-
-
-
-
k 3
(2,0,0)
(1,2,0)
(3,0,0)
(2,0,0)
(1,2,0)
(3,0,0)
(1,2,1)
(2,3,0)
(1,2,1)
(2,3,0)
26CP example
(1,2,1)
(1,2,3)
(1,2,0)
(2,3,0)
(2,4,1)
(0,1,0)
(2,0,0)
(3,0,0)
4,3,0)
(1,0,0)
Merge
CP
H O Q
(1,0,0)
(0,1,0)
-
-
(2,0,0)
-
-
k 3
(2,0,0)
(1,2,0)
(3,0,0)
(2,0,0)
(1,2,0)
(3,0,0)
(2,3,0)
(1,2,1)
(2,3,0)
(1,2,1)
(2,3,0)
27CP example
(1,2,1)
(1,2,3)
(1,2,0)
(2,3,0)
(2,4,1)
(0,1,0)
(2,0,0)
(3,0,0)
4,3,0)
(1,0,0)
Merge
CP
H O Q
(1,0,0)
(0,1,0)
-
(2,0,0)
(1,2,0)
-
-
k 3
(2,0,0)
(1,2,0)
(3,0,0)
(1,2,0)
(3,0,0)
(2,3,0)
(1,2,1)
(1,2,1)
(2,3,0)
(1,2,1)
28CP example
(1,2,1)
(1,2,3)
(1,2,0)
(2,3,0)
(2,4,1)
(0,1,0)
(2,0,0)
(3,0,0)
4,3,0)
(1,0,0)
Merge
CP
H O Q
(1,0,0)
(0,1,0)
(2,0,0)
(1,2,0)
k 3
(1,2,1)
(3,0,0)
(2,3,0)
(1,2,3)
(2,4,1)
4,3,0)
29Running times
30Test suites
- 7 new test suites are created.
- Each test suite contains 18 different test cases
- initial partition vary from 10 to 450 chains,
- size vary from 100 to 70,000
- We used a fixed vectorclock size (10)
- Reducing factor (N-w)/N
- where N is the size of the initial partition, and
w is the width of the poset. - Posets are randomly created according to a given
width and size. - Test suites differ in their reducing factor.
31Reducing factor effect
32Average run time per event
33Comparison with related work
34Concluding Remarks
- Partitioning a distributed computation
- Under the linear extension hypothesis pruning the
work space (without any significant extra cost )
improves the performance of the incremental
algorithm - Main limitation
- x1 x2 x3 lt k (efficient only for small k)
- A decentralized algorithm
- Integrating with computation slicing
35Questions ?
36Problem definition Previous algorithms
- Problem definition
- Given a chain partition of P, C C1, . . . ,CN
into N disjoint chains, rearrange these chains
into a chain partition with the fewest number of
chains. - Previous algorithms that answer the question
given k chains whether it is possible to
partition it into k-1 chains. - Bogart and Magagnosc
- BM
- Tomlinson and Garg
- TG
37Trace Model Total Order vs Partial Order
- Total order interleaving of events in a trace
- relevant tools Temporal Rover Drusinsky 00,
Java-MaC Kim, Kannan, Lee, Sokolsky, and
Viswanathan 01, jPaX Havelund and Rosu 01 - Partial order Lamports happened-before model
- e.g., jMPaX Sen, Rosu, and Agha 03
- Total order
- low computational complexity
- Partial order
- suitable for concurrent and distributed
programs - encodes exponential number of total
orders ) captures bugs that may not be found with
a total order