ICDCS 2006 Efficient Incremental Optimal Chain Partition of Distributed Program Traces Selma Ikiz Vijay K. Garg Parallel and Distributed Systems Laboratory.

Slides:



Advertisements
Similar presentations
Modeling and Analyzing Periodic Distributed Computations Anurag Agarwal Vijay Garg Vinit Ogale The University.
Advertisements

Dilworth’s theorem and extremal set theory
Size-estimation framework with applications to transitive closure and reachability Presented by Maxim Kalaev Edith Cohen AT&T Bell Labs 1996.
Runtime Verification Ali Akkaya Boğaziçi University.
Discovering Lag Interval For Temporal Dependencies Larisa Shwartz Liang Tang, Tao Li, Larisa Shwartz1 Liang Tang, Tao Li
D u k e S y s t e m s Time, clocks, and consistency and the JMM Jeff Chase Duke University.
/ PSWLAB Efficient Decentralized Monitoring of Safety in Distributed System K Sen, A Vardhan, G Agha, G Rosu 20 th July 2007 Presented by.
An Automata-based Approach to Testing Properties in Event Traces H. Hallal, S. Boroday, A. Ulrich, A. Petrenko Sophia Antipolis, France, May 2003.
Models and Security Requirements for IDS. Overview The system and attack model Security requirements for IDS –Sensitivity –Detection Analysis methodology.
PTIDES: Programming Temporally Integrated Distributed Embedded Systems Yang Zhao, EECS, UC Berkeley Edward A. Lee, EECS, UC Berkeley Jie Liu, Microsoft.
Comp 122, Spring 2004 Elementary Sorting Algorithms.
CMPT 431 Dr. Alexandra Fedorova Lecture VIII: Time And Global Clocks.
CPSC 668Set 12: Causality1 CPSC 668 Distributed Algorithms and Systems Fall 2009 Prof. Jennifer Welch.
Upper Bounds on the Time and Space Complexity of Optimizing Additively Separable Functions Matthew J. Streeter Carnegie Mellon University Pittsburgh, PA.
Preference Analysis Joachim Giesen and Eva Schuberth May 24, 2006.
Study Group Randomized Algorithms Jun 7, 2003 Jun 14, 2003.
Chapter 10 Global Properties. Unstable Predicate Detection A predicate is stable if, once it becomes true it remains true Snapshot algorithm is not useful.
Formal verification Marco A. Peña Universitat Politècnica de Catalunya.
Partially Ordered Sets Basic Concepts
February 17, 2015Applied Discrete Mathematics Week 3: Algorithms 1 Double Summations Table 2 in 4 th Edition: Section th Edition: Section th.
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
Order Statistics The ith order statistic in a set of n elements is the ith smallest element The minimum is thus the 1st order statistic The maximum is.
Analysis of Algorithms
The Integers. The Division Algorithms A high-school question: Compute 58/17. We can write 58 as 58 = 3 (17) + 7 This forms illustrates the answer: “3.
Survey on Trace Analyzer (2) Hong, Shin /34Survey on Trace Analyzer (2) KAIST.
Elementary Sorting Algorithms Many of the slides are from Prof. Plaisted’s resources at University of North Carolina at Chapel Hill.
On Reducing the Global State Graph for Verification of Distributed Computations Vijay K. Garg, Arindam Chakraborty Parallel and Distributed Systems Laboratory.
Incremental formal verification of hardware Hana Chockler Alexander Ivrii Arie Matsliah Shiri Moran Ziv Nevo IBM Research - Haifa.
Analysis of Concurrent Software Models Using Partial Order Views Qiang Sun, Yuting Chen,
Program Efficiency & Complexity Analysis. Algorithm Review An algorithm is a definite procedure for solving a problem in finite number of steps Algorithm.
Relations, Functions, and Matrices Mathematical Structures for Computer Science Chapter 4 Copyright © 2006 W.H. Freeman & Co.MSCS Slides Relations, Functions.
Haley: A Hierarchical Framework for Logical Composition of Web Services Haibo Zhao, Prashant Doshi LSDIS Lab, Dept. of Computer Science, University of.
1 Efficient Dependency Tracking for Relevant Events in Shared Memory Systems Anurag Agarwal Vijay K. Garg
CS 361 – Chapters 8-9 Sorting algorithms –Selection, insertion, bubble, “swap” –Merge, quick, stooge –Counting, bucket, radix How to select the n-th largest/smallest.
Parallel & Distributed Systems and Algorithms for Inference of Large Phylogenetic Trees with Maximum Likelihood Alexandros Stamatakis LRR TU München Contact:
Relations, Functions, and Matrices Mathematical Structures for Computer Science Chapter 4 Copyright © 2006 W.H. Freeman & Co.MSCS Slides Relations, Functions.
Time Parallel Simulations I Problem-Specific Approach to Create Massively Parallel Simulations.
1 Partial Orderings Aaron Bloomfield CS 202 Epp, section ???
Problem Statement How do we represent relationship between two related elements ?
Krakow, Summer 2011 Partially Ordered Sets Basic Concepts William T. Trotter
Parallel and Distributed Systems Laboratory Paradise: A Toolkit for Building Reliable Concurrent Systems Trace Verification for Parallel Systems Vijay.
Database Management Systems, R. Ramakrishnan 1 Algorithms for clustering large datasets in arbitrary metric spaces.
Minimizing Delay in Shared Pipelines Ori Rottenstreich (Technion, Israel) Joint work with Isaac Keslassy (Technion, Israel) Yoram Revah, Aviran Kadosh.
When Simulation Meets Antichains Yu-Fang Chen Academia Sinica, Taiwan Joint work with Parosh Aziz Abdulla, Lukas Holik, Richard Mayr, and Tomas Vojunar.
Symbolic Model Checking of Software Nishant Sinha with Edmund Clarke, Flavio Lerda, Michael Theobald Carnegie Mellon University.
Ch03-Algorithms 1. Algorithms What is an algorithm? An algorithm is a finite set of precise instructions for performing a computation or for solving a.
Parallel and Distributed Systems Laboratory Paradise: A Toolkit for Building Reliable Concurrent Systems On Building Reliable Concurrent Systems Vijay.
DFA foundations Simone Campanoni
Dilworth’s theorem and extremal set theory 張雁婷 國立交通大學應用數學系.
1 Partial Orderings Epp, section Introduction An equivalence relation is a relation that is reflexive, symmetric, and transitive A partial ordering.
PRAM and Parallel Computing
CSCE 668 DISTRIBUTED ALGORITHMS AND SYSTEMS
Applied Discrete Mathematics Week 2: Functions and Sequences
The Variable-Increment Counting Bloom Filter
RE-Tree: An Efficient Index Structure for Regular Expressions
Randomized Algorithms
Geometric Graphs and Quasi-Planar Graphs
Enough Mathematical Appetizers!
Computation.
Detecting Temporal Logic Predicates on Distributed Computations
Randomized Algorithms
Applied Discrete Mathematics Week 6: Computation
Efficient Incremental Optimal Chain Partition of Distributed Program Traces Selma Ikiz Vijay K. Garg Parallel and Distributed Systems Laboratory.
Order Statistics Def: Let A be an ordered set containing n elements. The i-th order statistic is the i-th smallest element. Minimum: 1st order statistic.
Enough Mathematical Appetizers!
Elementary Sorting Algorithms
Enough Mathematical Appetizers!
Runtime Safety Analysis of Multithreaded Programs
Program correctness Model-checking CTL
Divide and Conquer Merge sort and quick sort Binary search
Presentation transcript:

ICDCS 2006 Efficient Incremental Optimal Chain Partition of Distributed Program Traces Selma Ikiz Vijay K. Garg Parallel and Distributed Systems Laboratory

Outline  Introduction and Motivation  Problem definition  Outline two previous algorithms  Offline vs Incremental -> Experimental Results  New Incremental algorithm  Experimental Results  Concluding Remarks

Software 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

Distributed 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 f 1 → e 3  c(f 1 ) < c(e 3 ) – Fidge 1991 & Mattern 1989 : vector-clocks f 1 → e 3  c(f 1 ) < c(e 3 ) P1P1 P2P2 P3P3 (1,0,0)(2,2,0)(3,2,0) (0,1,0)(0,2,0)(0,3,0) (0,2,1)(3,2,2) e1e1 e2e2 e3e3 f1f1 f2f2 f3f3 g1g1 g2g2

Optimal 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 < width(P) [R.P. Dilworth]  Debugging – Visualization  Testing & Analyzing – Bounded sum predicates (x 1 + x 2 + x 3 < k) – Mutual exclusion violation

Mutual exclusion violation example P1P1 (1,0,0)(2,2,0)(3,2,0) P2P2 (0,1,0)(0,3,0) P3P3 (0,2,1) (3,2,2) Critical event C1C1 C2C2 C3C3 (1,0,0) (3,2,0) (0,2,0) (0,3,0) (0,2,0) (3,2,2)

Problem definition & Previous algorithms  Problem definition: – Given a chain partition of P, C = {C 1,...,C N } 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

Bogart & Magagnosc  A sequence of elements a 0,b 0,a 1,b 1,…,a s,b s is a reducing sequence if – a 0 is the least element of some chain, – b i is the immediate predecessor of ai+1 in some chain, – all b i ’s are distinct, – for all i: a i > b i in the partial order, – b s is the greatest element of its chain. C1C1 C2C2 (1,0,0) (2,0,0) (3,0,0) (0,1,0) (0,2,0) (0,3,0) (3,4,0) (3,5,0) C3C3 (0,0,1) (0,0,2) (0,0,3) (0,3,7) (0,3,8) C4C4 (0,0,4) (0,0,5) (0,0,6)

Tomlinson and Garg (1,0,0) (2,0,0) (3,0,0) (0,1,0) (0,2,0) (0,3,0) (3,4,0) (3,5,0) (0,0,1) (0,0,2) (0,0,3) (0,3,7) (0,3,8) Output Chains (0,0,4) (0,0,5) (0,0,6) Input Chains ┴┴┴(0,0,1)

Tomlinson and Garg (1,0,0) (2,0,0) (3,0,0) (0,1,0) (0,2,0) (0,3,0) (3,4,0) (3,5,0) (0,0,3) (0,3,7) (0,3,8) Output Chains (0,0,4) (0,0,5) (0,0,6) Input Chains ┴┴ (0,0,1) (0,0,2) (0,0,3) (0,0,1) (0,3,7) (0,3,8) (0,1,0) (0,2,0) (0,3,0) (3,4,0) (3,5,0)

Tomlinson and Garg (1,0,0) (2,0,0) (3,0,0) Output Chains (0,0,4) (0,0,5) (0,0,6) Input Chains ┴┴ (0,0,2) (0,0,3) (0,0,1) (0,3,7) (0,3,8) (0,2,0) (0,3,0) (3,4,0) (3,5,0) (0,1,0) ┴(0,3,0) (0,2,0) (0,1,0) (3,4,0) (3,5,0)

Tomlinson and Garg (2,0,0) (3,0,0) Output Chains (0,0,4) (0,0,5) (0,0,6) Input Chains (0,0,2) (0,0,3) (0,0,1) (0,3,7) (0,3,8) (0,3,0) (0,2,0) (0,1,0) (3,4,0) (3,5,0) (1,0,0) (3,0,0) (1,0,0) (2,0,0)

Tomlinson and Garg Output Chains (0,0,4) (0,0,5) (0,0,6) Input Chains (0,0,2) (0,0,3) (0,0,1) (0,3,7) (0,3,8) (0,3,0) (0,2,0) (0,1,0) (3,4,0) (3,5,0) (1,0,0) (2,0,0) (3,0,0) ┴

Tomlinson and Garg Output Chains (0,0,4) (0,0,5) (0,0,6) Input Chains (0,0,2) (0,0,3) (0,0,1) (0,3,7) (0,3,8) (0,3,0) (0,2,0) (0,1,0) (3,4,0) (3,5,0) (1,0,0) (2,0,0) (3,0,0) ┴┴┴

Offline 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

Linear 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

Memory Usage

Running times

Idea behind Chain Partitioner  New element – No effect – Updates the maximum antichain – Expands the maximum antichain   Given the maximum antichain, it’s sufficient to compare the new element with the maximum antichain Maximum antichain

CP example (1,2,1)(1,2,3) (1,2,0)(2,3,0)(2,4,1) (2,0,0)(3,0,0)4,3,0) (0,1,0) (1,0,0) Linearization: (1,0,0), (0,1,0),(1,2,0),(2,0,0),(1,2,1),(2,3,0),(3,0,0),(1,2,3),(2,4,1),(4,3,0)

CP example (1,2,1)(1,2,3) (1,2,0)(2,3,0)(2,4,1) (2,0,0)(3,0,0)4,3,0) (0,1,0) (1,0,0) (1,0,0), (0,1,0),(1,2,0),(2,0,0),(1,2,1),(2,3,0),(3,0,0),(1,2,3),(2,4,1),(4,3,0) H 0 : { } W 0 : { } (1,0,0) (0,1,0) (1,2,0) (2,0,0) H: {} O: {} Q: {} (1,0,0) (0,1,0) (1,2,0) (2,0,0) ┴ ┴ ┴ ┴ k = 3 CP Merge

CP example (1,2,1)(1,2,3) (1,2,0)(2,3,0)(2,4,1) (2,0,0)(3,0,0)4,3,0) (0,1,0) (1,0,0) (1,0,0), (0,1,0),(1,2,0),(2,0,0),(1,2,1),(2,3,0),(3,0,0),(1,2,3),(2,4,1),(4,3,0) H 4 : { } W 4 : { } (1,0,0) (0,1,0) (1,2,0) (2,0,0) H: {} O: {} Q: {} (1,0,0) (0,1,0) (1,2,0) (2,0,0) ┴ ┴ ┴ ┴(1,0,0) (1,2,0) k = 3 CP Merge

CP example (1,2,1)(1,2,3) (1,2,0)(2,3,0)(2,4,1) (2,0,0)(3,0,0)4,3,0) (0,1,0) (1,0,0) (1,0,0), (0,1,0),(1,2,0),(2,0,0),(1,2,1),(2,3,0),(3,0,0),(1,2,3),(2,4,1),(4,3,0) H 4 : { } W 4 : { } (1,0,0) (0,1,0) (1,2,0) (2,0,0) H: {} O: {} Q: {} (0,1,0) (2,0,0) ┴ ┴ ┴(1,0,0) (1,2,0) (0,1,0) k = 3 CP Merge

CP example (1,2,1)(1,2,3) (1,2,0)(2,3,0)(2,4,1) (2,0,0)(3,0,0)4,3,0) (0,1,0) (1,0,0) (1,0,0), (0,1,0),(1,2,0),(2,0,0),(1,2,1),(2,3,0),(3,0,0),(1,2,3),(2,4,1),(4,3,0) H 4 : { } W 4 : { } (1,0,0) (0,1,0) (1,2,0) (2,0,0) H: {} O: {} Q: {} (2,0,0) (1,0,0) (1,2,0) (0,1,0) k = 3 CP Merge

CP example (1,2,1)(1,2,3) (1,2,0)(2,3,0)(2,4,1) (2,0,0)(3,0,0)4,3,0) (0,1,0) (1,0,0) (1,0,0), (0,1,0),(1,2,0),(2,0,0),(1,2,1),(2,3,0),(3,0,0),(1,2,3),(2,4,1),(4,3,0) H 4 : { } W 4 : { } (2,0,0) (1,0,0) (1,2,0) (0,1,0) (1,2,1) (2,3,0) (3,0,0) H: {} O: {} Q: {} k = 3 (2,0,0) (1,2,0) (1,2,1) (2,3,0) (3,0,0) ┴ ┴ ┴ ┴ CP Merge

CP example (1,2,1)(1,2,3) (1,2,0)(2,3,0)(2,4,1) (2,0,0)(3,0,0)4,3,0) (0,1,0) (1,0,0) (1,0,0), (0,1,0),(1,2,0),(2,0,0),(1,2,1),(2,3,0),(3,0,0),(1,2,3),(2,4,1),(4,3,0) H 4 : { } W 4 : { } (2,0,0) (1,0,0) (1,2,0) (0,1,0) (1,2,1) (2,3,0) (3,0,0) H: {} O: {} Q: {} k = 3 (2,0,0) (1,2,0) (1,2,1) (2,3,0) (3,0,0) ┴ ┴ ┴ ┴ (2,3,0) (2,0,0) CP Merge

CP example (1,2,1)(1,2,3) (1,2,0)(2,3,0)(2,4,1) (2,0,0)(3,0,0)4,3,0) (0,1,0) (1,0,0) (1,0,0), (0,1,0),(1,2,0),(2,0,0),(1,2,1),(2,3,0),(3,0,0),(1,2,3),(2,4,1),(4,3,0) H 0 : { } W 0 : { } (2,0,0) (1,0,0) (1,2,0) (0,1,0) (1,2,1) (2,3,0) (3,0,0) H: {} O: {} Q: {} k = 3 (1,2,0) (1,2,1) (3,0,0) ┴ ┴ ┴ (2,3,0) (2,0,0) (1,2,0) (1,2,1) CP Merge

CP example (1,2,1)(1,2,3) (1,2,0)(2,3,0)(2,4,1) (2,0,0)(3,0,0)4,3,0) (0,1,0) (1,0,0) (1,0,0), (0,1,0),(1,2,0),(2,0,0),(1,2,1),(2,3,0),(3,0,0),(1,2,3),(2,4,1),(4,3,0) H 7 : { } W 7 : { } (1,0,0) (0,1,0) H: {} O: {} Q: {} k = 3 (1,2,1) (3,0,0) (2,3,0) (2,0,0) (1,2,0) (1,2,3) (2,4,1) 4,3,0) CP Merge

Running times

Test 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.

Reducing factor effect

Average run time per event

Comparison with related work

Concluding 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: – x 1 + x 2 + x 3 < k (efficient only for small k)  A decentralized algorithm  Integrating with computation slicing

Questions ?

Problem definition & Previous algorithms  Problem definition: – Given a chain partition of P, C = {C 1,...,C N } 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

Trace 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: Lamport’s 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