Advertisement

Lifting the Barriers – Reducing Latencies with Transparent Transactional Memory

  • Annette Bieniusa
  • Thomas Fuhrmann
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7129)

Abstract

Synchronization in distributed systems is expensive because, in general, threads must stall to obtain a lock or to operate on volatile data. Transactional memory, on the other hand, allows speculative execution so that it can hide the latencies that are inherent to distributed systems.

In this paper, we discuss how transactional memory can carry over to code that uses Java’s synchronization means i.e. monitors and volatiles. We show that we can guarantee correct execution according to the Java memory model (JMM) without having to stall at synchronization points. To this end, we use a multi-version software transactional memory system that executes JMM synchronization operations asynchronously. If any such execution has violated the JMM, the transaction rolls back. As a result, only blocking operations require immediate synchronization barriers.

Keywords

Virtual Machine Local Memory Global Memory Execution Trace Transactional Memory 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Bieniusa, A., Eickhold, J., Fuhrmann, T.: The architecture of the DecentVM: Towards a decentralized virtual machine for many-core computing. In: VMIL 2010, pp. 5:1–5:10 (2010)Google Scholar
  2. 2.
    Bieniusa, A., Fuhrmann, T.: Consistency in hindsight: A fully decentralized STM algorithm. In: IPDPS, pp. 1–12. IEEE (2010)Google Scholar
  3. 3.
    Dalessandro, L., Scott, M.L., Spear, M.F.: Transactions as the Foundation of a Memory Consistency Model. In: Lynch, N.A., Shvartsman, A.A. (eds.) DISC 2010. LNCS, vol. 6343, pp. 20–34. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  4. 4.
    Dice, D., Shalev, O., Shavit, N.N.: Transactional Locking II. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 194–208. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  5. 5.
    Dragojevic, A., Guerraoui, R., Kapalka, M.: Stretching transactional memory. In: Hind, M., Diwan, A. (eds.) PLDI, pp. 155–165. ACM (2009)Google Scholar
  6. 6.
    Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 3rd edn. Addison-Wesley Longman, Amsterdam (2005)zbMATHGoogle Scholar
  7. 7.
    Harris, T., Larus, J.R., Rajwar, R.: Transactional Memory, 2nd edn. Synthesis Lectures on Computer Architecture. Morgan & Claypool Publishers (2010)Google Scholar
  8. 8.
    Lea, D.: The cookbook for compiler writers (July 2011), http://gee.cs.oswego.edu/dl/jmm/cookbook.html
  9. 9.
    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)Google Scholar
  10. 10.
    Mattson, T.G., der Wijngaart, R.F.V., Riepen, M., Lehnig, T., Brett, P., Haas, W., Kennedy, P., Howard, J., Vangal, S., Borkar, N., Ruhl, G., Dighe, S.: The 48-core scc processor: the programmer’s view. In: Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis (2010)Google Scholar
  11. 11.
    Nightingale, E.B., Chen, P.M., Flinn, J.: Speculative execution in a distributed file system. ACM Trans. Comput. Syst. 24(4), 361–392 (2006)CrossRefGoogle Scholar
  12. 12.
    Russell, K., Detlefs, D.: Eliminating synchronization-related atomic operations with biased locking and bulk rebiasing. In: Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA 2006, pp. 263–272. ACM, New York (2006)CrossRefGoogle Scholar
  13. 13.
    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)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Annette Bieniusa
    • 1
  • Thomas Fuhrmann
    • 2
  1. 1.Department for Computer ScienceUniversität FreiburgFreiburgGermany
  2. 2.Department of InformaticsTechnische Universität MünchenGarchingGermany

Personalised recommendations