Abstract
We describe compiler optimizations for object-based Software Transactional Memory (STM) systems designed to make STM more accessible and efficient than is possible in the context of a purely library-based approach. Current object-based STM libraries are faced with a difficult tradeoff: offer an efficient but complex programming model or, as some recent libraries have done, sacrifice efficiency for ease-of-use. In this paper, we show that this dichotomy is not necessary. Our research suggests that an STM-enabled optimizing compiler can achieve performance comparable to that of the most efficient STM algorithms coded by a programmer, while still supporting a nearly transparent programming model. We also propose novel language extensions to support transactional boosting, a powerful new technique for transforming existing linearizable objects into transactional objects, thus permitting highly concurrent objects such as those found in the java.util.concurrent package to participate in STM transactions. When applied in conjunction with compiler support, we show that transactional boosting is both a flexible and natural way to escape the standard transactional model, and thus offers a promising alternative to existing “expert” approaches, such as open nesting and early release. Based on our results, we conclude that appropriate language support and high quality compiler optimizations are necessary parts of any STM system.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Adl-Tabatabai, A.-R., Lewis, B.T., Menon, V., Murphy, B.R., Menon, V., Saha, B., Shpeisman, T.: Compiler and runtime support for efficient software transactional memory. In: PLDI 2006: Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation, pp. 26–37. ACM Press, New York (2006)
Chow, F., Chan, S., Kennedy, R., Liu, S.-M., Lo, R., Tu, P.: A new algorithm for partial redundancy elimination based on ssa form. In: PLDI 1997. Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation, pp. 273–286. ACM Press, New York (1997)
Dalessandro, L., Marathe, V.J., Spear, M.F., Scott, M.L.: Capabilities and limitations of library-based software transactional memory in c++. In: Proceedings of the 2nd ACM SIGPLAN Workshop on Transactional Computing, Portland, OR (August 2007)
Damron, P., Fedorova, A., Lev, Y., Luchangco, V., Moir, M., Nussbaum, D.: Hybrid transactional memory. In: ASPLOS-XII. Proceedings of the 12th international conference on Architectural support for programming languages and operating systems, pp. 336–346. ACM Press, New York (2006)
Dice, D., Shavit, N.: What really makes transactions faster. In: Proc. of the 1st TRANSACT, workshop, 2006. Electronic (2006)
Dice, D., Shalev, O., Shavit, N.: Transactional locking ii. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 194–208. Springer, Heidelberg (2006)
Ennals, R.: Software transactional memory should not be obstruction-free. Intel Research Cambridge (unpublished manuscript)
Felber, P., Fetzer, C., Müller, U., Riegel, T., Süßkraut, M., Sturzrehm, H.: Transactifying applications using an open compiler framework. In: TRANSACT (2007)
Harris, T., Fraser, K.: Language support for lightweight transactions. In: OOPSLA 2003. Proceedings of the 18th ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, pp. 388–402. ACM Press, New York (2003)
Harris, T., Marlow, S., Peyton-Jones, S., Herlihy, M.: Composable memory transactions. In: PPoPP 2005. Proceedings of the 10th ACM SIGPLAN symposium on Principles and practice of parallel programming, pp. 48–60. ACM Press, New York (2005)
Harris, T., Plesko, M., Shinnar, A., Tarditi, D.: Optimizing memory transactions. In: PLDI 2006. Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation, pp. 14–25. ACM Press, New York (2006)
Herlihy, M., Koskinen, E.: Transactional boosting: A methodology for highly-concurrent transactional objects. Technical Report CS-07-08, Brown University (July 2007)
Herlihy, M., Luchangco, V., Moir, M.: A flexible framework for implementing software transactional memory. In: OOPSLA, pp. 253–262 (2006)
Herlihy, M., Luchangco, V., Moir, M., Scherer III, W.N.: Software transactional memory for dynamic-sized data structures. In: PODC 2003. Proceedings of the 22nd annual symposium on Principles of distributed computing, pp. 92–101. ACM Press, New York (2003)
Luchangco, V., Moir, M., Shavit, N.: Nonblocking k-compare-single-swap. In: SPAA 2003. Proceedings of the fifteenth annual ACM symposium on Parallel algorithms and architectures, pp. 314–323. ACM Press, New York (2003)
Marathe, V.J., Spear, M.F., Heriot, C., Acharya, A., Eisenstat, D., Scherer III, W.N., Scott, M.L.: Lowering the overhead of software transactional memory. In: ACM SIGPLAN Workshop on Transactional Computing (June 2006) Held in conjunction with PLDI 2006. Expanded version available as TR 893, Department of Computer Science, University of Rochester (March 2006)
Martin, M., Blundell, C., Lewis, E.: Subtleties of transactional memory atomicity semantics. IEEE Computer Architecture Letters 5(2) (2006)
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: PPoPP 2007. Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming, pp. 68–78. ACM Press, New York (2007)
Saha, B., Adl-Tabatabai, A.-R., Hudson, R., Minh, C.C., Hertzberg, B.: Mcrt-stm: A high performance software transactional memory system for a multi-core runtime. In: PPoPP (2006)
Spear, M.F., Marathe, V.J., Dalessandro, L., Scott, M.L.: Privatization techniques for software transactional memory. In: Proceedings of the 26th PODC ACM Symposium on Principles of Distributed Computing (August 2007)
VanDrunen, T., Hosking, A.L.: Anticipation-based partial redundancy elimination for static single assignment form. Software: Practice and Experience 34, 1413–1439 (2004)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Eddon, G., Herlihy, M. (2007). Language Support and Compiler Optimizations for STM and Transactional Boosting. In: Janowski, T., Mohanty, H. (eds) Distributed Computing and Internet Technology. ICDCIT 2007. Lecture Notes in Computer Science, vol 4882. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77115-9_22
Download citation
DOI: https://doi.org/10.1007/978-3-540-77115-9_22
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-77112-8
Online ISBN: 978-3-540-77115-9
eBook Packages: Computer ScienceComputer Science (R0)