Results 1  10
of
47
On slicing a distributed computation
 In Proceedings of the 21st IEEE International Conference on Distributed Computing Systems (ICDCS
, 2001
"... We introduce the notion of a slice of a distributed computation. A slice of a distributed computation with respect to a global predicate is a computation which captures those and only those consistent cuts of the original computation which satisfy the global predicate. We show that a slice exists fo ..."
Abstract

Cited by 67 (20 self)
 Add to MetaCart
(Show Context)
We introduce the notion of a slice of a distributed computation. A slice of a distributed computation with respect to a global predicate is a computation which captures those and only those consistent cuts of the original computation which satisfy the global predicate. We show that a slice exists for a global predicate iff the predicate is a regular predicate. We then give an efficient algorithm for computing the slice and show applications of slicing to testing and debugging of distributed programs. 1.
Runtime Safety Analysis of Multithreaded Programs
 In Proceedings of 4th joint European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE’03). ACM
, 2003
"... Foundational and scalable techniques for runtime safety analysis of multithreaded programs are explored in this paper. A technique based on vector clocks to extract the causal dependency order on state updates from a running multithreaded program is presented, together with algorithms to analyze a m ..."
Abstract

Cited by 45 (9 self)
 Add to MetaCart
(Show Context)
Foundational and scalable techniques for runtime safety analysis of multithreaded programs are explored in this paper. A technique based on vector clocks to extract the causal dependency order on state updates from a running multithreaded program is presented, together with algorithms to analyze a multithreaded computation against safety properties expressed using temporal logics. A prototype tool implementing our techniques, is also presented, together with examples where it can predict safety errors in multithreaded programs from successful executions of those programs. This tool is called Java MultiPathExplorer (JMPaX) , and available for download on the web. To the best of our knowledge, JMPaX is the first tool of its kind.
On detecting global predicates in distributed computations
 In Proceedings of the 21st IEEE International Conference on Distributed Computing Systems (ICDCS
, 2001
"... Monitoring of global predicates is a fundamental problem in asynchronous distributed systems. This problem arises in various contexts such as design, testing and debugging, and faulttolerance of distributed programs. In this paper, we establish that the problem of determining whether there exists a ..."
Abstract

Cited by 23 (10 self)
 Add to MetaCart
Monitoring of global predicates is a fundamental problem in asynchronous distributed systems. This problem arises in various contexts such as design, testing and debugging, and faulttolerance of distributed programs. In this paper, we establish that the problem of determining whether there exists a consistent cut of a computation that satisfies a predicate in ¡CNF, ¡£¢¥ ¤ , in which no two clauses contain variables from the same process is NPcomplete in general. A polynomialtime algorithm to find the consistent cut, if it exists, that satisfies the predicate for special cases is provided. We also give algorithms albeit exponential that can be used to achieve an exponential reduction in time over existing techniques for solving the general version. Furthermore, we present an algorithm to determine whether there exists a consistent cut of a computation for which the ¦¨§�©�¦���©�������©�¦� � sum exactly equals some constant ¡, where each ¦� � is an integer variable on process �¨� such that it is incremented or decremented by at most one at each step. As a corollary, any symmetric global predicate on boolean variables such as absence of simple majority and exclusiveor of local predicates can now be detected. Additionally, the problem is proved to be NPcomplete if each ¦� � can be changed by an arbitrary amount at each step. Our results solve the previously open problems in predicate detection proposed in [7] and bridge the wide gap between the known tractability and intractability results that existed until now. 1.
Computation Slicing: Techniques and Theory
 In Proceedings of the Symposium on Distributed Computing (DISC
, 2001
"... Abstract. We generalize the notion of slice introduced in our earlier paper [6]. A slice of a distributed computation with respect to a global predicate is the smallest computation that contains all consistent cuts of the original computation that satisfy the predicate. We prove that slice exists fo ..."
Abstract

Cited by 23 (10 self)
 Add to MetaCart
(Show Context)
Abstract. We generalize the notion of slice introduced in our earlier paper [6]. A slice of a distributed computation with respect to a global predicate is the smallest computation that contains all consistent cuts of the original computation that satisfy the predicate. We prove that slice exists for all global predicates. We also establish that it is, in general, NPcomplete to compute the slice. An optimal algorithm to compute slices for special cases of predicates is provided. Further, we present an efficient algorithm to graft two slices, that is, given two slices, either compute the smallest slice that contains all consistent cuts that are common to both slices or compute the smallest slice that contains all consistent cuts that belong to at least one of the slices. We give application of slicing in general and grafting in particular to global property evaluation of distributed programs. Finally, we show that the results pertaining to consistent global checkpoints [14, 18] can be derived as special cases of computation slicing. 1
Detecting global predicates in distributed systems with clocks
 In Proceedings of the 11th International Workshop on Distributed Algorithms (WDAG’97
, 1997
"... This paper proposes a framework for detecting global state predicates in systems of processes with approximatelysynchronized realtime clocks. Timestamps from these clocks are used to de ne two orderings on events: \de nitely occurred before " and \possibly occurred before". These ..."
Abstract

Cited by 20 (2 self)
 Add to MetaCart
This paper proposes a framework for detecting global state predicates in systems of processes with approximatelysynchronized realtime clocks. Timestamps from these clocks are used to de ne two orderings on events: \de nitely occurred before &quot; and \possibly occurred before&quot;. These orderings lead naturally to de nitions of 3 distinct detection modalities, i.e., 3 meanings of \predicate held during a computation&quot;, namely: Poss db db! ( \ possibly held&quot;), Def! ( \ de nitely held&quot;), and Inst ( \ de nitely held in a speci c global state&quot;). This paper de nes these modalities and gives e cient algorithms for detecting them. The algorithms are based on algorithms of Garg and Waldecker, Alagar and Venkatesan, Cooper and Marzullo, and Fromentin and Raynal. Complexity analysis shows that under reasonable assumptions, these realtimeclockbased detection algorithms are less expensive thandetection algorithms based on Lamport's happenedbefore ordering. Sample applications are given to illustrate the bene ts of this approach. Key words: global predicate detection, consistent global states, distributed debugging, realtime monitoring 1
Efficient Detection of Global Properties in Distributed Systems Using PartialOrder Methods
 IN PROCEEDINGS OF THE 12TH INTERNATIONAL CONFERENCE ON COMPUTERAIDED VERIFICATION (CAV), VOLUME 1855 OF LECTURE NOTES IN COMPUTER SCIENCE
, 2000
"... A new approach is presented for detecting whether a computation of an asynchronous distributed system satisfies Poss (read "possibly"), meaning the system could have passed through a global state satisfying property. Previous generalpurpose algorithms for this problem explicitly enumerate ..."
Abstract

Cited by 19 (1 self)
 Add to MetaCart
A new approach is presented for detecting whether a computation of an asynchronous distributed system satisfies Poss (read "possibly"), meaning the system could have passed through a global state satisfying property. Previous generalpurpose algorithms for this problem explicitly enumerate the set of global states through which the system could have passed during the computation. The new approach is to represent this set symbolically, in particular, using ordered binary decision diagrams. We describe an implementation of this approach, suitable for offline detection of properties, and compare its performance to the enumerationbased algorithm of Alagar & Venkatesan. In typical cases, the new algorithm is signi cantly faster. We have measured over 400fold speedup in some cases.
Programming Modular Robots with Locally Distributed Predicates
"... Abstract — We present a highlevel language for programming modular robotic systems, based on locally distributed predicates (LDP), which are distributed conditions that hold for a connected subensemble of the robotic system. An LDP program is a collection of LDPs with associated actions which are t ..."
Abstract

Cited by 16 (5 self)
 Add to MetaCart
(Show Context)
Abstract — We present a highlevel language for programming modular robotic systems, based on locally distributed predicates (LDP), which are distributed conditions that hold for a connected subensemble of the robotic system. An LDP program is a collection of LDPs with associated actions which are triggered on any subensemble that matches the predicate. The result is a reactive programming language which efficiently and concisely supports ensemblelevel programming. We demonstrate the utility of LDP by implementing three common, but diverse, modular robotic tasks. I.
Debugging distributed programs using controlled reexecution
 In Proceedings of the 19th ACM Symposium on Principles of Distributed Computing (PODC
, 2000
"... Distributed programs are hard to write. A distributed debugger equipped with the mechanism to reexecute the traced computation in a controlled fashion can greatly facilitate the detection and localization of bugs. This approach gives rise to a general problem, called predicate control problem, whic ..."
Abstract

Cited by 16 (7 self)
 Add to MetaCart
(Show Context)
Distributed programs are hard to write. A distributed debugger equipped with the mechanism to reexecute the traced computation in a controlled fashion can greatly facilitate the detection and localization of bugs. This approach gives rise to a general problem, called predicate control problem, which takes a computation and a safety property specified on the computation, and outputs a controlled computation that maintains the property. We define a class of global predicates, called region predicates, that can be controlled efficiently in a distributed computation. We prove that the synchronization generated by our algorithm is optimal. Further, we introduce the notion of an admissible sequence of events and prove that it is equivalent to the notion of predicate control. We then give an efficient algorithm for the class of disjunctive predicates based on the notion of an admissible sequence. 1.
Detecting Temporal Logic Predicates on the HappenedBefore Model
 In Proc. of the International Parallel and Distributed Processing Symposium (IPDPS), Fort
, 2001
"... in distributed computing. In this paper we describe new predicate detection algorithms for certain temporal logic predicates. We use a temporal logic, CTL, for specifying properties of a distributed computation and interpret it on a finite lattice of global states. We present solutions to the predic ..."
Abstract

Cited by 14 (6 self)
 Add to MetaCart
(Show Context)
in distributed computing. In this paper we describe new predicate detection algorithms for certain temporal logic predicates. We use a temporal logic, CTL, for specifying properties of a distributed computation and interpret it on a finite lattice of global states. We present solutions to the predicate detection of linear and observerindependent predicates under EG and AG operators of CTL. For linear predicates we develop polynomialtime predicate detection algorithms which exploit the structure of finite distributive lattices. For observerindependent predicates we prove that predicate detection is NPcomplete under EG operator and coNPcomplete under AG operator. We also present polynomialtime algorithms for a CTL operator called until , for which such algorithms did not exist. Finally, our work unifies many earlier results in predicate detection in a single framework.