TransDPOR: A Novel Dynamic Partial-Order Reduction Technique for Testing Actor Programs

  • Samira Tasharofi
  • Rajesh K. Karmani
  • Steven Lauterburg
  • Axel Legay
  • Darko Marinov
  • Gul Agha
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7273)


To detect hard-to-find concurrency bugs, testing tools try to systematically explore all possible interleavings of the transitions in a concurrent program. Unfortunately, because of the nondeterminism in concurrent programs, exhaustively exploring all interleavings is time-consuming and often computationally intractable. Speeding up such tools requires pruning the state space explored. Partial-order reduction (POR) techniques can substantially prune the number of explored interleavings. These techniques require defining a dependency relation on transitions in the program, and exploit independency among certain transitions to prune the state space.

We observe that actor systems, a prevalent class of programs where computation entities communicate by exchanging messages, exhibit a dependency relation among co-enabled transitions with an interesting property: transitivity. This paper introduces a novel dynamic POR technique, TransDPOR, that exploits the transitivity of the dependency relation in actor systems. Empirical results show that leveraging transitivity speeds up exploration by up to two orders of magnitude compared to existing POR techniques.


Model Check Message Passing Interface Dependency Relation Transition Sequence Execution Path 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Agha, G.: Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge (1986)Google Scholar
  2. 2.
    Agha, G., Mason, I.A., Smith, S., Talcott, C.: A foundation for actor computation. Journal of Functional Programming 7(01), 1–72 (1997)MathSciNetzbMATHCrossRefGoogle Scholar
  3. 3.
    Arts, T., Claessen, K., Svensson, H.E.: Semi-formal Development of a Fault-Tolerant Leader Election Protocol in Erlang. In: Grabowski, J., Nielsen, B. (eds.) FATES 2004. LNCS, vol. 3395, pp. 140–154. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  4. 4.
    Chandy, K.M., Misra, J.: Distributed computation on graphs: Shortest path algorithms. ACM (1982)Google Scholar
  5. 5.
    Esparza, J.: Model checking using net unfoldings. Science of Computer Programming 23(2-3), 151–195 (1994)MathSciNetzbMATHCrossRefGoogle Scholar
  6. 6.
    Flanagan, C., Godefroid, P.: Dynamic partial-order reduction for model checking software. In: POPL, pp. 110–121 (2005)Google Scholar
  7. 7.
    Godefroid, P.: Using Partial Orders to Improve Automatic Verification Methods. In: Larsen, K.G., Skou, A. (eds.) CAV 1991. LNCS, vol. 575, pp. 176–185. Springer, Heidelberg (1992)CrossRefGoogle Scholar
  8. 8.
    Godefroid, P.: Partial-Order Methods for the Verification of Concurrent Systems. LNCS, vol. 1032, p. 142. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  9. 9.
    Godefroid, P., Pirottin, D.: Refining Dependencies Improves Partial-Order Verification Methods. In: Courcoubetis, C. (ed.) CAV 1993. LNCS, vol. 697, pp. 438–449. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  10. 10.
    Gropp, W., Huss-Lederman, S., Lumsdaine, A., Lusk, E., Nitzberg, B., Saphir, W., Snir, M.: MPI: The Complete Reference. The MPI-2 Extensions, vol. 2 (1998)Google Scholar
  11. 11.
    Gueta, G., Flanagan, C., Yahav, E., Sagiv, M.: Cartesian Partial-Order Reduction. In: Bošnački, D., Edelkamp, S. (eds.) SPIN 2007. LNCS, vol. 4595, pp. 95–112. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  12. 12.
    Haller, P., Odersky, M.: Actors That Unify Threads and Events. In: Murphy, A.L., Ryan, M. (eds.) COORDINATION 2007. LNCS, vol. 4467, pp. 171–190. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  13. 13.
    Holzmann, G.: The model checker SPIN. IEEE Transactions on Software Engineering 23(5), 279–295 (1997)MathSciNetCrossRefGoogle Scholar
  14. 14.
    Karmani, R.K., Shali, A., Agha, G.: Actor frameworks for the JVM platform: A comparative analysis. In: PPPJava, pp. 11–20 (2009)Google Scholar
  15. 15.
    Kastenberg, H., Rensink, A.: Dynamic Partial Order Reduction Using Probe Sets. In: van Breugel, F., Chechik, M. (eds.) CONCUR 2008. LNCS, vol. 5201, pp. 233–247. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  16. 16.
    Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Communications of the ACM (1978)Google Scholar
  17. 17.
    Lauterburg, S., Dotta, M., Marinov, D., Agha, G.: A framework for state-space exploration of Java-based actor programs. In: ASE, pp. 468–479 (2009)Google Scholar
  18. 18.
    Lauterburg, S., Karmani, R.K., Marinov, D., Agha, G.: Evaluating Ordering Heuristics for Dynamic Partial-Order Reduction Techniques. In: Rosenblum, D.S., Taentzer, G. (eds.) FASE 2010. LNCS, vol. 6013, pp. 308–322. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  19. 19.
    Lei, Y., Carver, R.H.: Reachability testing of concurrent programs. IEEE Transactions on Software Engineering 32, 382–403 (2006)CrossRefGoogle Scholar
  20. 20.
    McMillan, K.: Using Unfoldings to Avoid the State Explosion Problem in the Verification of Asynchronous Circuits. In: Probst, D.K., von Bochmann, G. (eds.) CAV 1992. LNCS, vol. 663, pp. 164–177. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  21. 21.
    Open Systems Laboratory, University of Illinois at Urbana-Champaign. The Actor Foundry: A Java-based Actor Programming Environment (September 1998)Google Scholar
  22. 22.
    Peled, D.: All from One, One for All: On Model Checking Using Representatives. In: Courcoubetis, C. (ed.) CAV 1993. LNCS, vol. 697, pp. 409–423. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  23. 23.
  24. 24.
    Sen, K., Agha, G.: Automated Systematic Testing of Open Distributed Programss. In: Baresi, L., Heckel, R. (eds.) FASE 2006. LNCS, vol. 3922, pp. 339–356. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  25. 25.
    Sen, K., Agha, G.: A Race-Detection and Flipping Algorithm for Automated Testing of Multi-threaded Programs. In: Bin, E., Ziv, A., Ur, S. (eds.) HVC 2006. LNCS, vol. 4383, pp. 166–182. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  26. 26.
    Vakkalanka, S.S., Gopalakrishnan, G., Kirby, R.M.: Dynamic Verification of MPI Programs with Reductions in Presence of Split Operations and Relaxed Orderings. In: Gupta, A., Malik, S. (eds.) CAV 2008. LNCS, vol. 5123, pp. 66–79. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  27. 27.
    Valmari, A.: Stubborn sets for reduced state space generation. In: ATPN, pp. 491–515 (1991)Google Scholar
  28. 28.
    Visser, W., Havelund, K., Brat, G.P., Park, S., Lerda, F.: Model checking programs. Autom. Softw. Eng. 10(2), 203–232 (2003)CrossRefGoogle Scholar
  29. 29.
    Wang, C., Yang, Z., Kahlon, V., Gupta, A.: Peephole Partial Order Reduction. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 382–396. Springer, Heidelberg (2008)CrossRefGoogle Scholar

Copyright information

© IFIP International Federation for Information Processing 2012

Authors and Affiliations

  • Samira Tasharofi
    • 1
  • Rajesh K. Karmani
    • 1
  • Steven Lauterburg
    • 2
  • Axel Legay
    • 3
  • Darko Marinov
    • 1
  • Gul Agha
    • 1
  1. 1.Department of Computer ScienceUniversity of IllinoisUrbanaUSA
  2. 2.Salisbury UniversitySalisburyUSA
  3. 3.INRIAFrance

Personalised recommendations