skip to main content
research-article

A parallel algorithm for global states enumeration in concurrent systems

Published:24 January 2015Publication History
Skip Abstract Section

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

References

  1. ASM – a java bytecode engineering library. URL http://asm.ow2.org/.Google ScholarGoogle Scholar
  2. S. Alagar and S. Venkatesan. Techniques to tackle state explosion in global predicate detection. IEEE Trans. on Software Engineering, 27: 412–417, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. C. Chase and V. K. Garg. Detection of global predicates: Techniques and their limitations. Distributed Computing, 11(4):191–201, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. T. H. Cormen, C. Stein, R. L. Rivest, and C. E. Leiserson. Introduction to Algorithms. McGraw-Hill Higher Education, 2nd edition, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. B. Ganter. Two basic algorithms in concept analysis. In Proceedings of the International Conference on Formal Concept Analysis, pages 312–340, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle Scholar
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. M. Habib, R. Medina, L. Nourine, and G. Steiner. Efficient algorithms on distributive lattices. Discrete Appl. Math., 110(2-3):169–187, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2008. ISBN 9780080569581. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarCross RefCross Ref
  18. L. Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21(7):558–565, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Y. Lei and R. Carver. Reachability testing of concurrent programs. IEEE Transactions on Software Engineering, 32(6):382–403, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle Scholar
  22. P. Meredith and G. Ros¸u. Runtime Verification with the RV system. In the International Conference on Runtime Verification, pages 136–152, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. G. Pruesse and F. Ruskey. Gray codes from antimatroids. Order 10, pages 239–252, 1993.Google ScholarGoogle ScholarCross RefCross Ref
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. M. B. Squire. Enumerating the ideals of a poset. In PhD Dissertation, Department of Computer Science, North Carolina State University, 1995.Google ScholarGoogle Scholar
  30. G. Steiner. An algorithm to generate the ideals of a partial order. Oper. Res. Lett., 5(6):317–320, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. W. Visser, K. Havelund, G. Brat, S. Park, and F. Lerda. Model checking programs. Automated Software Engineering Journal, 10(2): 203–232, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A parallel algorithm for global states enumeration in concurrent systems

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image ACM SIGPLAN Notices
              ACM SIGPLAN Notices  Volume 50, Issue 8
              PPoPP '15
              August 2015
              290 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/2858788
              • Editor:
              • Andy Gill
              Issue’s Table of Contents
              • cover image ACM Conferences
                PPoPP 2015: Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
                January 2015
                290 pages
                ISBN:9781450332057
                DOI:10.1145/2688500

              Copyright © 2015 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 24 January 2015

              Check for updates

              Qualifiers

              • research-article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!