Unifying Thread-Level Speculation and Transactional Memory

  • João Barreto
  • Aleksandar Dragojevic
  • Paulo Ferreira
  • Ricardo Filipe
  • Rachid Guerraoui
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7662)

Abstract

The motivation of this work is to ask whether Transactional Memory (TM) and Thread-Level Speculation (TLS), two prominent concurrency paradigms usually considered separately, can be combined into a hybrid approach that extracts untapped parallelism and speed-up from common programs.

We show that the answer is positive by describing an algorithm, called TLSTM, that leverages an existing TM with TLS capabilities. We also show that our approach is able to achieve up to a 48% increase in throughput over the base TM, on read dominated workloads of long transactions in a multi-threaded application, among other results.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Sohi, G.S., Breach, S.E., Vijaykumar, T.N.: Multiscalar processors. In: 25 Years of the International Symposia on Computer Architecture (selected papers), ISCA 1998, pp. 521–532. ACM, New York (1998)CrossRefGoogle Scholar
  2. 2.
    Hammond, L., Willey, M., Olukotun, K.: Data speculation support for a chip multiprocessor. SIGPLAN Not. 33, 58–69 (1998)CrossRefGoogle Scholar
  3. 3.
    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 (1993)Google Scholar
  4. 4.
    Oancea, C.E., Mycroft, A., Harris, T.: A lightweight in-place implementation for software thread-level speculation. In: Proceedings of the Twenty-First Annual Symposium on Parallelism in Algorithms and Architectures, pp. 223–232 (2009)Google Scholar
  5. 5.
    Dragojević, A., Felber, P., Gramoli, V., Guerraoui, R.: Why stm can be more than a research toy. Commun. ACM 54(4), 70–77 (2011)CrossRefGoogle Scholar
  6. 6.
    Howard, J., Dighe, S., Hoskote, Y., Vangal, S., Finan, D., Ruhl, G., Jenkins, D., Wilson, H., Borkar, N., Schrom, G., Pailet, F., Jain, S., Jacob, T., Yada, S., Marella, S., Salihundam, P., Erraguntla, V., Konow, M., Riepen, M., Droege, G., Lindemann, J., Gries, M., Apel, T., Henriss, K., Lund-Larsen, T., Steibl, S., Borkar, S., De, V., Van Der Wijngaart, R., Mattson, T.: A 48-core ia-32 message-passing processor with dvfs in 45nm cmos. In: 2010 IEEE International Solid-State Circuits Conference Digest of Technical Papers (ISSCC), pp. 108–109 (February 2010)Google Scholar
  7. 7.
    Oplinger, J.T., Heine, D.L., Lam, M.S.: In search of speculative thread-level parallelism. In: Proceedings of the 1999 International Conference on Parallel Architectures and Compilation Techniques. PACT 1999 (1999)Google Scholar
  8. 8.
    Guerraoui, R., Kapalka, M., Vitek, J.: Stmbench7: a benchmark for software transactional memory. SIGOPS Oper. Syst. Rev. 41, 315–324 (2007)CrossRefGoogle Scholar
  9. 9.
    Cao Minh, C., Chung, J., Kozyrakis, C., Olukotun, K.: STAMP: Stanford transactional applications for multi-processing. In: IISWC 2008: Proceedings of The IEEE International Symposium on Workload Characterization (September 2008)Google Scholar
  10. 10.
    Ansari, M., Kotselidis, C., Watson, I., Kirkham, C., Luján, M., Jarvis, K.: Lee-TM: A Non-trivial Benchmark Suite for Transactional Memory. In: Bourgeois, A.G., Zheng, S.Q. (eds.) ICA3PP 2008. LNCS, vol. 5022, pp. 196–207. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  11. 11.
    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 2009: Proceedings of the 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 25–34 (2009)Google Scholar
  12. 12.
    Carvalho, N., Cachopo, J.A., Rodrigues, L., Silva, A.R.: Versioned transactional shared memory for the fénixedu web application. In: Proceedings of the 2nd Workshop on Dependable Distributed Data Management, pp. 15–18 (2008)Google Scholar
  13. 13.
    Dragojević, A., Guerraoui, R., Kapalka, M.: Stretching transactional memory. In: Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2009, pp. 155–165. ACM (2009)Google Scholar
  14. 14.
    Guerraoui, R., Kapalka, M.: On the correctness of transactional memory. In: PPoPP 2008: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (2008)Google Scholar
  15. 15.
    Dice, D., Shalev, O., Shavit, N.: Transactional Locking II. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 194–208. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  16. 16.
    Felber, P., Fetzer, C., Riegel, T.: Dynamic performance tuning of word-based software transactional memory. In: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 237–246 (2008)Google Scholar
  17. 17.
    Kim, H., Raman, A., Liu, F., Lee, J.W., August, D.I.: Scalable speculative parallelization on commodity clusters. In: Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture, MICRO 43 (2010)Google Scholar
  18. 18.
    Chen, M.K., Olukotun, K.: Exploiting method-level parallelism in single-threaded java programs. In: Proceedings of the 1998 International Conference on Parallel Architectures and Compilation Techniques, PACT 1998 (1998)Google Scholar
  19. 19.
    Gajinov, V., Zyulkyarov, F., Unsal, O.S., Cristal, A., Ayguade, E., Harris, T., Valero, M.: Quaketm: parallelizing a complex sequential application using transactional memory. In: Proceedings of the 23rd International Conference on Supercomputing, ICS 2009, pp. 126–135. ACM, New York (2009)Google Scholar
  20. 20.
    Watson, I., Kirkham, C., Luján, M.: A study of a transactional parallel routing algorithm. In: Proceedings of the 16th International Conference on Parallel Architecture and Compilation Techniques – PaCT 2007, pp. 388–398 (2007)Google Scholar
  21. 21.
    Steffan, J.G., Colohan, C.B., Zhai, A., Mowry, T.C.: A scalable approach to thread-level speculation. In: Proceedings of the 27th Annual International Symposium on Computer Architecture, ISCA 2000, pp. 1–12 (2000)Google Scholar
  22. 22.
    Steffan, J.G., Colohan, C., Zhai, A., Mowry, T.C.: The stampede approach to thread-level speculation. ACM Trans. Comput. Syst. 23, 253–300 (2005)CrossRefGoogle Scholar
  23. 23.
    Liu, W., Tuck, J., Ceze, L., Ahn, W., Strauss, K., Renau, J., Torrellas, J.: Posh: a tls compiler that exploits program structure. In: Proceedings of the Eleventh ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2006, pp. 158–167. ACM, New York (2006)Google Scholar
  24. 24.
    Oancea, C.E., Mycroft, A.: Software thread-level speculation: an optimistic library implementation. Proceedings of the 1st International Workshop on Multicore Software Engineering, IWMSE 2008, 23–32 (2008)Google Scholar
  25. 25.
    Devabhaktuni, S.: Softspec: Software-based speculative parallelism via stride prediction. Master’s thesis, M.I.T (1999)Google Scholar
  26. 26.
    Cintra, M., Llanos, D.R.: Toward efficient and robust software speculative parallelization on multiprocessors. In: Proceedings of the Ninth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 13–24 (2003)Google Scholar
  27. 27.
    Rundberg, P., Stenström, P.: An all-software thread-level data dependence speculation system for multiprocessors. Journal of Instruction-Level Parallelism (2001)Google Scholar
  28. 28.
    Mehrara, M., Hao, J., Hsu, P.C., Mahlke, S.: Parallelizing sequential applications on commodity hardware using a low-cost software transactional memory. In: Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2009, pp. 166–176 (2009)Google Scholar
  29. 29.
    Martínez, J.F., Torrellas, J.: Speculative synchronization: applying thread-level speculation to explicitly parallel applications. In: Proceedings of the 10th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS-X, pp. 18–29. ACM, New York (2002)Google Scholar
  30. 30.
    Kemme, B., Pedone, F., Alonso, G., Schiper, A., Wiesmann, M.: Using optimistic atomic broadcast in transaction processing systems. IEEE Trans. on Knowl. and Data Eng. 15(4), 1018–1032 (2003)CrossRefGoogle Scholar
  31. 31.
    Palmieri, R., Quaglia, F., Romano, P.: Osare: Opportunistic speculation in actively replicated transactional systems. In: Proceedings of the 2011 IEEE 30th International Symposium on Reliable Distributed Systems, SRDS 2011, pp. 59–64. IEEE Computer Society Press, Washington, DC (2011)CrossRefGoogle Scholar

Copyright information

© IFIP International Federation for Information Processing 2012

Authors and Affiliations

  • João Barreto
    • 1
  • Aleksandar Dragojevic
    • 2
  • Paulo Ferreira
    • 1
  • Ricardo Filipe
    • 1
  • Rachid Guerraoui
    • 2
  1. 1.INESC-IDTechnical University LisbonPortugal
  2. 2.EPFLSwitzerland

Personalised recommendations