Skip to main content

Optimal Instrumentation of Data-flow in Concurrent Data Structures

  • Conference paper
Principles of Distributed Systems (OPODIS 2011)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7109))

Included in the following conference series:

Abstract

In this paper, we propose an automated technique for optimal instrumentation of multi-threaded programs for debugging and testing of concurrent data structures. We define a notion of observability that enables debuggers to trace back and locate errors through data-flow instrumentation. Observability in a concurrent program enables a debugger to extract the value of a set of desired variables through instrumenting another (possibly smaller) set of variables. We formulate an optimization problem that aims at minimizing the size of the latter set. In order to cope with the exponential complexity of the problem, we present a SAT-based solution. Our approach is fully implemented and experimental results on popular concurrent data structures (e.g., linked lists and red-black trees) show significant performance improvement in optimally-instrumented programs using our method as compared to ad-hoc over-instrumented programs.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Yices: An SMT Solver, http://yices.csl.sri.com

  2. Ammann, P., Offutt, J.: Introduction to Software Testing. Cambridge University Press, New York (2008)

    Book  Google Scholar 

  3. Attiya, H., Hillel, E.: Built-In Coloring for Highly-Concurrent Doubly-Linked Lists. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 31–45. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  4. Cytron, R., Ferrante, J., Rosen, B.K., Wegman, M.N., Zadeck, F.K.: Efficiently Computing Static Single Assignment Form and the Control Dependence Graph. ACM Transactions on Programming Languages and Systems 13(4), 451–490 (1991)

    Article  Google Scholar 

  5. Fraser, K., Harris, T.: Concurrent programming without locks. ACM Trans. Comput. Syst. 25(2) (2007)

    Google Scholar 

  6. Harris, T.L.: A Pragmatic Implementation of Non-Blocking Linked-Lists. In: Welch, J.L. (ed.) DISC 2001. LNCS, vol. 2180, pp. 300–314. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  7. Lattner, C., Adve, V.: Llvm: A compilation framework for lifelong program analysis and transformation. In: CGO, p. 75 (2004)

    Google Scholar 

  8. Lee, J., Midkiff, S.P., Padua, D.A.: A constant propagation algorithm for explicitly parallel programs. International Journal of Parallel Programming 26(5), 563–589 (1998)

    Article  Google Scholar 

  9. Nanda, M.G., Ramesh, S.: Slicing concurrent programs. In: ISSTA, pp. 180–190 (2000)

    Google Scholar 

  10. Navabpour, S., Bonakdarpour, B., Fischmeister, S.: Software debugging and testing using the abstract diagnosis theory. In: LCTES, pp. 111–120 (2011)

    Google Scholar 

  11. Ottenstein, K.J., Ottenstein, L.M.: The program dependence graph in a software development environment. In: SDE, pp. 177–184 (1984)

    Google Scholar 

  12. Schmid, U.: Monitoring of Distributed Real-Time Systems. Real-Time Systems 7(1), 33–56 (1994)

    Article  MATH  Google Scholar 

  13. Thane, H., Hansson, H.: Towards Systematic Testing of Distributed Real-Time Systems. In: RTSS, pp. 360–369 (1999)

    Google Scholar 

  14. Thane, H., Sundmark, D., Huselius, J., Pettersson, A.: Replay Debugging of Real-Time Systems Using Time Machines. In: IPDPS, p. 8 (2003)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Navabpour, S., Bonakdarpour, B., Fischmeister, S. (2011). Optimal Instrumentation of Data-flow in Concurrent Data Structures. In: Fernàndez Anta, A., Lipari, G., Roy, M. (eds) Principles of Distributed Systems. OPODIS 2011. Lecture Notes in Computer Science, vol 7109. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-25873-2_34

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-25873-2_34

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-25872-5

  • Online ISBN: 978-3-642-25873-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics