Abstract
Verifying the correctness of the executions of a concurrent program is difficult because of its nondeterministic behavior. One of the verification methods is predicate detection, which predicts whether the user specified condition (predicate) could become true in any global states of the program. The method is predictive because it generates inferred execution paths from the observed execution path and then checks the predicate on the global states of inferred paths. One important part of predicate detection is global states enumeration, which generates the global states on inferred paths. Cooper and Marzullo gave the first enumeration algorithm based on a breadth first strategy (BFS). Later, many algorithms have been proposed to improve space and time complexity. None of them, however, takes parallelism into consideration. In this paper, we present the first parallel and online algorithm, named ParaMount, for global state enumeration. Our experimental results show that ParaMount speeds up the existing sequential algorithms by a factor of 6 with 8 threads. We have implemented an online predicate detector using ParaMount. For predicate detection, our detector based on ParaMount is 10 to 50 times faster than RV runtime (a verification tool that uses Cooper and Marzullo’s BFS enumeration algorithm).
- ASM – a java bytecode engineering library. URL http://asm.ow2.org/.Google Scholar
- S. Alagar and S. Venkatesan. Techniques to tackle state explosion in global predicate detection. IEEE Trans. on Software Engineering, 27: 412–417, 2001. Google Scholar
Digital Library
- K. M. Chandy and L. Lamport. Distributed snapshots: Determining global states of distributed systems. ACM Transactions on Computer Systems, 3(1):63–75, 1985. Google Scholar
Digital Library
- C. Chase and V. K. Garg. Detection of global predicates: Techniques and their limitations. Distributed Computing, 11(4):191–201, 1998. Google Scholar
Digital Library
- F. Chen, T. F. Serbanuta, and G. Ros¸u. jPredictor: a predictive runtime analysis tool for java. In Proceedings of the International Conference on Software Engineering, pages 221–230, 2008. Google Scholar
Digital Library
- R. Cooper and K. Marzullo. Consistent detection of global predicates. In Proc. of the Workshop on Parallel and Distributed Debugging, pages 163–173, 1991. Google Scholar
Digital Library
- T. H. Cormen, C. Stein, R. L. Rivest, and C. E. Leiserson. Introduction to Algorithms. McGraw-Hill Higher Education, 2nd edition, 2001. Google Scholar
Digital Library
- E. Farchi, Y. Nir, and S. Ur. Concurrent bug patterns and how to test them. In Proceedings of the International Parallel and Distributed Processing Symposium, 2003. Google Scholar
Digital Library
- C. J. Fidge. Timestamps in message-passing systems that preserve the partial ordering. In Proceedings of the Australian Computer Science Conference, pages 56–66, 1988.Google Scholar
- C. Flanagan and S. N. Freund. FastTrack: efficient and precise dynamic race detection. In Proceedings of the Conference on Programming Language Design and Implementation, pages 121–133, 2009. Google Scholar
Digital Library
- B. Ganter. Two basic algorithms in concept analysis. In Proceedings of the International Conference on Formal Concept Analysis, pages 312–340, 2010. Google Scholar
Digital Library
- V. K. Garg. Enumerating global states of a distributed computation. In Proceedings of the International Conference on Parallel and Distributed Computing Systems, pages 134–139, 2003.Google Scholar
- V. K. Garg and B. Waldecker. Detection of weak unstable predicates in distributed programs. IEEE Transactions on Parallel and Distributed Systems, 5(3):299–307, 1994. Google Scholar
Digital Library
- M. Habib, R. Medina, L. Nourine, and G. Steiner. Efficient algorithms on distributive lattices. Discrete Appl. Math., 110(2-3):169–187, 2001. Google Scholar
Digital Library
- M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2008. ISBN 9780080569581. Google Scholar
Digital Library
- J. Huang and C. Zhang. Persuasive prediction of concurrency access anomalies. In Proceedings of the International Symposium on Software Testing and Analysis, pages 144–154, 2011. Google Scholar
Digital Library
- R. Jegou, R. Medina, and L. Nourine. Linear space algorithm for on-line detection of global predicates. In Proc. of the International Workshop on Structures in Concurrency Theory, pages 175–189, 1995.Google Scholar
Cross Ref
- L. Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21(7):558–565, 1978. Google Scholar
Digital Library
- Y. Lei and R. Carver. Reachability testing of concurrent programs. IEEE Transactions on Software Engineering, 32(6):382–403, 2006. Google Scholar
Digital Library
- S. Lu, J. Tucek, F. Qin, and Y. Zhou. AVIO: detecting atomicity violations via access interleaving invariants. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems, pages 37–48, 2006. Google Scholar
Digital Library
- F. Mattern. Virtual time and global states of distributed systems. In Proc. of the International Workshop on Parallel and Distributed Algorithms, pages 125–226, Chateau de Bonas, France, 1988.Google Scholar
- P. Meredith and G. Ros¸u. Runtime Verification with the RV system. In the International Conference on Runtime Verification, pages 136–152, 2010. Google Scholar
Digital Library
- M. Musuvathi and S. Qadeer. Iterative context bounding for systematic testing of multithreaded programs. In Proceedings of Conference on Programming language design and implementation, pages 446–455, 2007. Google Scholar
Digital Library
- V. A. Ogale and V. K. Garg. Detecting temporal logic predicates on distributed computations. In Proceedings of International Symposium in Distributed Computing, pages 420–434, 2007. Google Scholar
Digital Library
- S. Park, S. Lu, and Y. Zhou. CTrigger: exposing atomicity violation bugs from their hiding places. In Proceedings of the International Conference on Architectural support for programming languages and operating systems, pages 25–36, 2009. Google Scholar
Digital Library
- G. Pruesse and F. Ruskey. Gray codes from antimatroids. Order 10, pages 239–252, 1993.Google Scholar
Cross Ref
- A. Sen and V. K. Garg. Detecting temporal logic predicates on the happened-before model. In Proceedings of the International Parallel and Distributed Processing Symposium, 2002. Google Scholar
Digital Library
- F. Sorrentino, A. Farzan, and P. Madhusudan. Penelope: weaving threads to expose atomicity violations. In Proceedings of the International Symposium on Foundations of Software Engineering, pages 37–46, 2010. Google Scholar
Digital Library
- M. B. Squire. Enumerating the ideals of a poset. In PhD Dissertation, Department of Computer Science, North Carolina State University, 1995.Google Scholar
- G. Steiner. An algorithm to generate the ideals of a partial order. Oper. Res. Lett., 5(6):317–320, 1986. Google Scholar
Digital Library
- A. I. Tomlinson and V. K. Garg. Monitoring functions on global states of distributed programs. Journal of Parallel and Distributed Computing, 41(2):173–189, 1997. Google Scholar
Digital Library
- W. Visser, K. Havelund, G. Brat, S. Park, and F. Lerda. Model checking programs. Automated Software Engineering Journal, 10(2): 203–232, 2003. Google Scholar
Digital Library
- C. von Praun and T. R. Gross. Object race detection. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 70–82, 2001. Google Scholar
Digital Library
- J. Yu, S. Narayanasamy, C. Pereira, and G. Pokam. Maple: A coverage-driven testing tool for multithreaded programs. In Proceedings of the International Conference on Object Oriented Programming Systems Languages and Applications, pages 485–502, 2012. Google Scholar
Digital Library
Index Terms
A parallel algorithm for global states enumeration in concurrent systems
Recommendations
A parallel algorithm for global states enumeration in concurrent systems
PPoPP 2015: Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel ProgrammingVerifying the correctness of the executions of a concurrent program is difficult because of its nondeterministic behavior. One of the verification methods is predicate detection, which predicts whether the user specified condition (predicate) could ...
Techniques to Tackle State Explosion in Global Predicate Detection
Global predicate detection, which is an important problem in testing and debugging distributed programs, is very hard due to the combinatorial explosion of the global state space. This paper presents several techniques to tackle the state explosion ...
Global States Monitoring in Execution Control of Parallel Programs
ISPDC '08: Proceedings of the 2008 International Symposium on Parallel and Distributed ComputingThe paper concerns methodology of organizing execution control in parallel and distributed programs based on special control infrastructure provided in the system, which monitors application global states. In such infrastructure, automatic collecting ...






Comments