Abstract
Transactional memory (TM) is a promising alternative to mutual exclusion. In spite of this, it may be unrealistic for TM programs to be devoid of locks due to their abundant use in legacy software systems. Consequently, for TMs to be practical they may need to manage the interaction of transactions and locks when they access the same shared-memory. This paper presents two algorithms, one coarse-grained and one fine-grained, that improve the state-of-the-art performance for TMs that support the concurrent execution of locks and transactions. We also discuss the programming language constructs that are necessary to implement such algorithms and present analyses that compare and contrast our approach with prior work. Our analyses demonstrate that, (i) in general, our proposed coarse- and fine-grained algorithms improve program concurrency but (ii) an algorithm’s concurrent throughput potential does not always lead to realized performance gains.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Abdelkhalek, A., Bilas, A.: Parallelization and performance of interactive multiplayer game servers. In: IPDPS (2004)
Bloch, J.: Effective Java, 2nd edn. The Java Series. Prentice Hall PTR, Upper Saddle River (2008)
Dijkstra, E.W.: Solution of a problem in concurrent programming control. Commun. ACM 8(9), 569 (1965)
Gottschlich, J.E., Siek, J.G., Vachharajani, M., Winkler, D.Y., Connors, D.A.: An efficient lock-aware transactional memory implementation. In: Proceedings of the International ACM Workshop on ICOOOLPS (July 2009)
Gottschlich, J.E., Vachharajani, M., Siek, J.G.: An efficient software transactional memory using commit-time invalidation. In: Proceedings of the International Symposium on Code Generation and Optimization, CGO (April 2010)
Herlihy, M., Moss, J.E.B.: Transactional memory: Architectural support for lock-free data structures. In: Proceedings of the International Symposium on Computer Architecture (May 1993)
Moore, K.E., Bobba, J., Moravan, M.J., Hill, M.D., Wood, D.A.: LogTM: Log-based transactional memory. In: HPCA, pp. 254–265. IEEE Computer Society (February 2006)
Rajwar, R., Bernstein, P.A.: Atomic transactional execution in hardware: A new high performance abstraction for databases. In: Workshop on High Performance Transaction Systems (2003)
Rajwar, R., Goodman, J.R.: Speculative lock elision: enabling highly concurrent multithreaded execution. In: MICRO, pp. 294–305. ACM/IEEE (2001)
Rossbach, C.J., Hofmann, O.S., Porter, D.E., Ramadan, H.E., Aditya, B., Witchel, E.: Txlinux: using and managing hardware transactional memory in an operating system. In: SOSP, pp. 87–102. ACM (2007)
Shavit, N., Touitou, D.: Software transactional memory. In: Proceedings of the Principles of Distributed Computing (August 1995)
Spear, M.F., Marathe, V.J., Scherer III, W.N., Scott, M.L.: Conflict Detection and Validation Strategies for Software Transactional Memory. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 179–193. Springer, Heidelberg (2006)
Spear, M.F., Michael, M.M., Scott, M.L.: Inevitability mechanisms for software transactional memory. In: Proceedings of the 3rd ACM SIGPLAN Workshop on Transactional Computing (February 2008)
Usui, T., Behrends, R., Evans, J., Smaragdakis, Y.: Adaptive locks: Combining transactions and locks for efficient concurrency. Journal of Parallel and Distributed Computing, 1009–1023 (2010)
Volos, H., Goyal, N., Swift, M.M.: Pathological interaction of locks with transactional memory. In: TRANSACT (February 2008)
Welc, A., Saha, B., Adl-Tabatabai, A.-R.: Irrevocable transactions and their applications. In: SPAA (2008)
Ziarek, L., Welc, A., Adl-Tabatabai, A.-R., Menon, V., Shpeisman, T., Jagannathan, S.: A Uniform Transactional Execution Environment for Java. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 129–154. Springer, Heidelberg (2008)
Zilles, C., Flint, D.: Challenges to providing performance isolation in transactional memories. In: Proceedings of the Fourth Workshop on Duplicating, Deconstructing, and Debunking, pp. 48–55 (June 2005)
Zyulkyarov, F., Gajinov, V., Unsal, O.S., Cristal, A., Ayguadé, E., Harris, T., Valero, M.: Atomic quake: using transactional memory in an interactive multiplayer game server. In: PPoPP, pp. 25–34. ACM, New York (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gottschlich, J.E., Chung, J. (2013). Optimizing the Concurrent Execution of Locks and Transactions. In: Rajopadhye, S., Mills Strout, M. (eds) Languages and Compilers for Parallel Computing. LCPC 2011. Lecture Notes in Computer Science, vol 7146. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-36036-7_9
Download citation
DOI: https://doi.org/10.1007/978-3-642-36036-7_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-36035-0
Online ISBN: 978-3-642-36036-7
eBook Packages: Computer ScienceComputer Science (R0)