ABSTRACT
Given a trace of a distributed computation and a desired predicate, the predicate detection problem is to find a consistent global state that satisfies the given predicate. The predicate detection problem has many applications in the testing and runtime verification of parallel and distributed systems. We show that many problems related to predicate detection are in the parallel complexity class NC, the set of decision problems decidable in polylogarithmic time on a parallel computer with a polynomial number of processors. Given a computation on n processes with at most m local states per process, our parallel algorithm to detect a given conjunctive predicate takes O(log mn) time and O(m3n3 log mn) work. The sequential algorithm takes O(mn2) time. For data race detection, we give a parallel algorithm that takes O(log mn log n) time, also placing that problem in NC. This is the first work, to the best of our knowledge, that places the parallel complexity of such predicate detection problems in the class NC.
- B. Charron-Bost, C. Delporte-Gallet, and H. Fauconnier. 1995. Local and Temporal Predicates in Distributed Systems. ACM Transactions on Programming Languages and Systems 17, 1 (Jan. 1995), 157--179. Google ScholarDigital Library
- C. Chase and V. K. Garg. 1995. On Techniques and their Limitations for the Global Predicate Detection Problem. In Proceedings of the Workshop on Distributed Algorithms (WDAG). France, 303--317.Google Scholar
- C. Chase and V. K. Garg. 1998. Efficient Detection of Global Predicates in a Distributed System. Distributed Computing 11, 4 (1998).Google Scholar
- Feng Chen, Traian Florin Serbanuta, and Grigore Roşu. 2008. jPredictor: a predictive runtime analysis tool for java. In Proceedings of the International Conference on Software Engineering. 221--230. Google ScholarDigital Library
- R. Cooper and K. Marzullo. 1991. Consistent Detection of Global Predicates. In Proc. of the Workshop on Parallel and Distributed Debugging. ACM/ONR, Santa Cruz, CA, 163--173. Google ScholarDigital Library
- C. J. Fidge. 1989. Partial Orders for Parallel Debugging. Proceedings of the ACM SIGPLAN/SIGOPS Workshop on Parallel and Distributed Debugging, published in ACM SIGPLAN Notices 24, 1 (Jan. 1989), 183--194. Google ScholarDigital Library
- Cormac Flanagan and Stephen N. Freund. 2009. FastTrack: efficient and precise dynamic race detection. In Proceedings of ACM SIGPLAN the Conference on Programming Language Design and Implementation. 121--133. Google ScholarDigital Library
- Vijay K Garg. 2015. Lattice Theory with Computer Science Applications. Wiley, New York, NY. Google ScholarDigital Library
- Vijay K. Garg. 2017. Brief Announcement: Application of Predicate Detection to the Stable Marriage Problem. In International Symposium on DIStributed Computing (DISC'17).Google Scholar
- V. K. Garg and C. Chase. 1995. Distributed Algorithms for Detecting conjunctive predicates. In Proc. of the IEEE International Conference on Distributed Computing Systems. Vancouver, BC, Canada, 423--430. Google ScholarDigital Library
- V. K. Garg and N. Mittal. 2001. On Slicing a Distributed Computation. In 21st International Conference on Distributed Computing Systems (ICDCS' 01). IEEE, Washington - Brussels - Tokyo, 322--329. Google ScholarDigital Library
- V. K. Garg and B. Waldecker. 1991. Detection of Unstable Predicates. In Proc. of the Workshop on Parallel and Distributed Debugging. ACM/ONR, Santa Cruz, CA.Google Scholar
- V. K. Garg and B. Waldecker. 1992. Detection of Unstable Predicates in Distributed Programs. In Proc. of 12th Conference on the Foundations of Software Technology & Theoretical Computer Science. Springer Verlag, 253--264. Lecture Notes in Computer Science 652. Google ScholarDigital Library
- Michael Hurfin, Masaaki Mizuno, Michel Raynal, and Mukesh Singhal. 1998. Efficient Distributed Detection of Conjunctions of Local Predicates. IEEE Transactions on Software Engineering 24, 8 (Aug. 1998), 664--677. Google ScholarDigital Library
- Joseph JáJá. 1992. An introduction to parallel algorithms. Vol. 17. Addison-Wesley Reading. Google ScholarDigital Library
- L. Lamport. 1978. Time, Clocks, and the Ordering of Events in a Distributed System. Commun. ACM 21, 7 (July 1978), 558--565. Google ScholarDigital Library
- Y. Lei and R.H. Carver. 2006. Reachability testing of concurrent programs. IEEE Transactions on Software Engineering 32, 6 (2006), 382--403. Google ScholarDigital Library
- Daniel Marino, Madanlal Musuvathi, and Satish Narayanasamy. 2009. LiteRace: Effective Sampling for Lightweight Data-race Detection. In Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '09). ACM, New York, NY, USA, 134--143. Google ScholarDigital Library
- F. Mattern. 1989. Virtual time and global states of distributed systems. In Parallel and Distributed Algorithms: Proc. of the International Workshop on Parallel and Distributed Algorithms. Elsevier Science Publishers B.V. (North-Holland), 215--226.Google Scholar
- N. Mittal and V. K. Garg. 2001. Slicing a Distributed Computation: Techniques and Theory. In 5th International Symposium on DIStributed Computing (DISC'01). Google ScholarDigital Library
- Robert O'Callahan and Jong-Deok Choi. 2003. Hybrid Dynamic Data Race Detection. In Proceedings of the Ninth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP '03). ACM, New York, NY, USA, 167--178. Google ScholarDigital Library
- Vinit A. Ogale and Vijay K. Garg. 2007. Detecting Temporal Logic Predicates on Distributed Computations. In Distributed Computing, 21st International Symposium, DISC 2007, Lemesos, Cyprus, September 24--26, 2007, Proceedings. 420--434. Google ScholarDigital Library
- Eli Pozniansky and Assaf Schuster. 2003. Efficient On-the-fly Data Race Detection in Multithreaded C++ Programs. In Proceedings of the Ninth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP '03). ACM, New York, NY, USA, 179--190. Google ScholarDigital Library
- Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, and Thomas Anderson. 1997. Eraser: A Dynamic Data Race Detector for Multithreaded Programs. ACM Trans. Comput. Syst. 15, 4 (Nov. 1997), 391--411. Google ScholarDigital Library
- S. D. Stoller and F. B. Schneider. 1995. Faster Possibility Detection by Combining Two Approaches. In Proc. of the 9th International Workshop on Distributed Algorithms. Springer-Verlag, Le Mont-Saint-Michel, France, 318--332. Google ScholarDigital Library
- A. I. Tomlinson and V. K. Garg. 1997. Monitoring Functions on Global States of Distributed Programs. J. Parallel and Distrib. Comput. 41, 2 (March 1997), 173--189. Google ScholarDigital Library
- S. Venkatesan and B. Dathan. 1992. Testing and Debugging Distributed Programs Using Global Predicates. In Thirtieth Annual Allerton Conference on Communication, Control and Computing. Allerton, IL, 137--146.Google Scholar
- Yuan Yu, Tom Rodeheffer, and Wei Chen. 2005. RaceTrack: Efficient Detection of Data Race Conditions via Adaptive Tracking. In Proceedings of the Twentieth ACM Symposium on Operating Systems Principles (SOSP '05). ACM, New York, NY, USA, 221--234. Google ScholarDigital Library
Index Terms
- Parallel algorithms for predicate detection
Recommendations
Doubly Logarithmic Communication Algorithms for Optical-Communication Parallel Computers
In this paper, we consider the problem of interprocessor communication on parallel computers that have optical communication networks. We consider the completely connected optical-communication parallel computer (OCPC), which has a completely connected ...
Work-Time Optimal k-Merge Algorithms on the PRAM
For 2 k n, the k-merge problem is to merge a collection of k sorted sequences of total length n into a new sorted sequence. The k-merge problem is fundamental as it provides a common generalization of both merging and sorting. The main contribution of ...
Parallel Algorithms for the Longest Common Subsequence Problem
A subsequence of a given string is any string obtained by deleting none or some symbolsfrom the given string. A longest common subsequence (LCS) of two strings is a commonsubsequence of both that is as long as any other common subsequences. The problem ...
Comments