Skip to main content

Using Abstract Interpretation to Correct Synchronization Faults

  • Conference paper
  • First Online:
Book cover Verification, Model Checking, and Abstract Interpretation (VMCAI 2017)

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

  • 860 Accesses

Abstract

We describe a novel use of abstract interpretation in which the abstract domain informs a runtime system to correct synchronization failures. To this end, we first introduce a novel synchronization paradigm, dubbed corrective synchronization, that is a generalization of existing approaches to ensuring serializability. Specifically, the correctness of multi-threaded execution need not be enforced by previous methods that either reduce parallelism (pessimistic) or roll back illegal thread interleavings (optimistic); instead inadmissible states can be altered into admissible ones. In this way, the effects of inadmissible interleavings can be compensated for by modifying the program state as a transaction completes, while accounting for the behavior of concurrent transactions. We have proved that corrective synchronization is serializable and give conditions under which progress is ensured. Next, we describe an abstract interpretation that is able to compute these valid serializable post-states w.r.t. a transaction’s entry state by computing an under-approximation of the serializable intermediate (or final) states as the fixpoint solution over an inter-procedural control-flow graph. These abstract states inform a runtime system that is able to perform state correction dynamically. We have instantiated this setup to clients of a Java-like Concurrent Map data structure to ensure safe composition of map operations. Finally, we report early encouraging results that the approach competes with or out-performs previous pessimistic or optimistic approaches.

P. Ferrara and O. Tripp—The research leading to this paper was conducted while the author was at IBM Research.

E. Koskinen—The research was supported by NSF CCF Award #1421126 and conducted partially while the author was at IBM Research.

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 EPUB and 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

Notes

  1. 1.

    http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html.

  2. 2.

    https://github.com/DeuceSTM/DeuceSTM.

References

  1. Beeri, C., Bernstein, P.A., Goodman, N., Lai, M.Y., Shasha, D.E.: A concurrency control theory for nested transactions (preliminary report). In: Proceedings of the 2nd Annual ACM Symposium on Principles of Distributed Computing (PODC 1983), pp. 45–62. ACM Press, New York (1983)

    Google Scholar 

  2. Burckhardt, S., Leijen, D.: Semantics of concurrent revisions. In: Barthe, G. (ed.) ESOP 2011. LNCS, vol. 6602, pp. 116–135. Springer, Heidelberg (2011). doi:10.1007/978-3-642-19718-5_7

    Chapter  Google Scholar 

  3. Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Proceedings of POPL 1977. ACM Press (1977)

    Google Scholar 

  4. Cousot, P., Cousot, R.: Abstract interpretation and application to logic programs. J. Logic Program. 13, 103–179 (1992)

    Article  MathSciNet  MATH  Google Scholar 

  5. Egwutuoha, I.P., Levy, D., Selic, B., Chen, S.: A survey of fault tolerance mechanisms and checkpoint/restart implementations for high performance computing systems. J. Supercomput. 65, 1302–1326 (2013)

    Article  Google Scholar 

  6. Felber, P., Gramoli, V., Guerraoui, R.: Elastic transactions. In: Keidar, I. (ed.) DISC 2009. LNCS, vol. 5805, pp. 93–107. Springer, Heidelberg (2009). doi:10.1007/978-3-642-04355-0_12

    Chapter  Google Scholar 

  7. Golan-Gueta, G., Ramalingam, G., Sagiv, M., Yahav, E.: Concurrent libraries with foresight. In: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 263–274 (2013)

    Google Scholar 

  8. Golan-Gueta, G., Ramalingam, G., Sagiv, M., Yahav, E.: Concurrent libraries with foresight. In: ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2013, Seattle, WA, USA, 16–19 June 2013, pp. 263–274 (2013)

    Google Scholar 

  9. Hawkins, P., Aiken, A., Fisher, K., Rinard, M.C., Sagiv, M.: Concurrent data representation synthesis. In: ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2012, Beijing, China, 11–16 June 2012, pp. 417–428 (2012)

    Google Scholar 

  10. Hendler, D., Incze, I., Shavit, N., Tzafrir, M.: Flat combining and the synchronization-parallelism tradeoff. In: SPAA 2010: Proceedings of the 22nd Annual ACM Symposium on Parallelism in Algorithms and Architectures, Thira, Santorini, Greece, 13–15 June 2010, pp. 355–364 (2010)

    Google Scholar 

  11. Herlihy, M., Koskinen, E.: Transactional boosting: a methodology for highly-concurrent transactional objects. In: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP 2008, Salt Lake City, UT, USA, 20–23 February 2008, pp. 207–216 (2008)

    Google Scholar 

  12. Herlihy, M., Moss, J.E.B.: Transactional memory: architectural support for lock-free data structures. In: Proceedings of the 20th Annual International Symposium on Computer Architecture, San Diego, CA, pp. 289–300, May 1993

    Google Scholar 

  13. Kleen, A.: Scaling existing lock-based applications with lock elision. Commun. ACM 57(3), 52–56 (2014)

    Article  Google Scholar 

  14. Koskinen, E., Herlihy, M.: Checkpoints and continuations instead of nested transactions. In: Meyer auf der Heide, F., Shavit, N. (eds.) SPAA 2008: Proceedings of the 20th Annual ACM Symposium on Parallelism in Algorithms and Architectures, Munich, Germany, 14–16 June 2008, pp. 160–168. ACM (2008)

    Google Scholar 

  15. Koskinen, E., Parkinson, M.J.: The push/pull model of transactions. In: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, Portland, OR, USA, 15–17 June 2015, pp. 186–195 (2015)

    Google Scholar 

  16. Kulkarni, M., Pingali, K., Walter, B., Ramanarayanan, G., Kavita Bala, L., Chew, P.: Optimistic parallelism requires abstractions. In: Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2007, pp. 211–222. ACM, New York (2007)

    Google Scholar 

  17. Kulkarni, M., Pingali, K., Walter, B., Ramanarayanan, G., Kavita Bala, L., Chew, P.: Optimistic parallelism requires abstractions. In: Proceedings of the ACM SIGPLAN 2007 Conference on Programming Language Design and Implementation, San Diego, California, USA, 10–13 June 2007, pp. 211–222 (2007)

    Google Scholar 

  18. Matveev, A., Shavit, N.: Towards a fully pessimistic STM model. In: Proceedings of the Workshop on Transactional Memory (TRANSACT 2012) (2012)

    Google Scholar 

  19. McCloskey, B., Zhou, F., Gay, D., Brewer, E.A.: Autolocker: synchronization inference for atomic sections. In: Proceedings of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2006, Charleston, South Carolina, USA, 11–13 January 2006, pp. 346–358 (2006)

    Google Scholar 

  20. Ni, Y., Menon, V.S., Adl-Tabatabai, A.-R., Hosking, A.L., Hudson, R.L., Eliot, J., Moss, B., Saha, B., Shpeisman, T.: Open nesting in software transactional memory. In: Proceedings of the 12th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP 2007), pp. 68–78. ACM Press, New York (2007)

    Google Scholar 

  21. Prountzos, D., Manevich, R., Pingali, K., McKinley, K.S.: A shape analysis for optimizing parallel graph programs. In: Proceedings of the 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2011, Austin, TX, USA, 26–28 January 2011, pp. 159–172 (2011)

    Google Scholar 

  22. Sagiv, S., Reps, T.W., Wilhelm, R.: Parametric shape analysis via 3-valued logic. ACM Trans. Program. Lang. Syst. 24, 217–298 (2002)

    Article  Google Scholar 

  23. Shacham, O., Bronson, N.G., Aiken, A., Sagiv, M., Vechev, M.T., Yahav, E.: Testing atomicity of composed concurrent operations. In Proceedings of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2011, Part of SPLASH 2011, Portland, OR, USA, 22–27 October 2011, pp. 51–64 (2011)

    Google Scholar 

  24. Shacham, O., Yahav, E., Golan-Gueta, G., Aiken, A., Bronson, N.G., Sagiv, M., Vechev, M.T.: Verifying atomicity via data independence. In: International Symposium on Software Testing and Analysis, ISSTA 2014, San Jose, CA, USA, 21–26 July 2014, pp. 26–36 (2014)

    Google Scholar 

  25. Tripp, O., Koskinen, E., Sagiv, M.: Turning nondeterminism into parallelism. In: Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages & Applications, OOPSLA 2013, Part of SPLASH 2013, Indianapolis, IN, USA, 26–31 October 2013, pp. 589–604 (2013)

    Google Scholar 

  26. Tripp, O., Yorsh, G., Field, J., Sagiv, M.: Hawkeye: effective discovery of dataflow impediments to parallelization. In: Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA 2011, pp. 207–224. ACM, New York (2011)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Pietro Ferrara .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

Ferrara, P., Tripp, O., Liu, P., Koskinen, E. (2017). Using Abstract Interpretation to Correct Synchronization Faults. In: Bouajjani, A., Monniaux, D. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2017. Lecture Notes in Computer Science(), vol 10145. Springer, Cham. https://doi.org/10.1007/978-3-319-52234-0_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-52234-0_11

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-52233-3

  • Online ISBN: 978-3-319-52234-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics