Skip to main content

Practical Parallel Nesting for Software Transactional Memory

  • Conference paper
Distributed Computing (DISC 2013)

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

Included in the following conference series:

Abstract

Transactional Memory (TM) provides a strong abstraction to tackle the challenge of synchronizing concurrent tasks that access shared state. Yet, most TMs do not allow a single transaction to contain parallel code. We propose an efficient parallel nesting algorithm to explore existing latent parallelism within a transaction. If this intra-transaction parallelism has reduced conflict probability (compared to the inter-transaction parallelism), then it may be worthy to execute less transactions at a given time, but have each one parallelized and using several available cores.

We provide practical support for parallel nesting in the first lock-free parallel nesting algorithm with support for multi-versions. Our prototype builds over an available multi-version TM, which we outperform on standard benchmarks by up to 2.8×. We show improvements over parallel nesting alternatives of up to 3.6×.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Agrawal, K., Fineman, J.T., Sukha, J.: Nested parallelism in transactional memory. In: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2008, pp. 163–174. ACM (2008)

    Google Scholar 

  2. 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)

    Chapter  Google Scholar 

  3. Baek, W., Bronson, N., Kozyrakis, C., Olukotun, K.: Implementing and evaluating nested parallel transactions in software transactional memory. In: Proceedings of the 22nd ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2010, pp. 253–262. ACM (2010)

    Google Scholar 

  4. Barreto, J., Dragojević, A., Ferreira, P., Guerraoui, R., Kapalka, M.: Leveraging parallel nesting in transactional memory. In: Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2010, pp. 91–100. ACM (2010)

    Google Scholar 

  5. Intel Corporation. Intel Architecture Instruction Set Extensions Programming Reference. 319433-012 edn. (February 2012)

    Google Scholar 

  6. Diegues, N., Cachopo, J.: Practical Parallel Nesting for Software Transactional Memory. Technical Report RT/22/2013, INESC-ID Lisboa (July 2013)

    Google Scholar 

  7. Diegues, N., Cachopo, J.: On the design space of Parallel Nesting. In: The 4th Workshop on the Theory of Transactional Memory, WTTM 2012 (2012)

    Google Scholar 

  8. Diegues, N., Fernandes, S., Cachopo, J.: Parallel Nesting in a lock-free multi-version Software Transactional Memory. In: The 7th ACM SIGPLAN Workshop on Transactional Computing, TRANSACT 2012 (2012)

    Google Scholar 

  9. Fernandes, S., Cachopo, J.: Lock-free and scalable multi-version software transactional memory. In: Proceedings of the 16th ACM symposium on Principles and Practice of Parallel Programming, PPoPP 2011, pp. 179–188. ACM (2011)

    Google Scholar 

  10. Guerraoui, R., Kapalka, M.: On the correctness of transactional memory. In: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2008, pp. 175–184. ACM (2008)

    Google Scholar 

  11. Guerraoui, R., Kapalka, M., Vitek, J.: STMBench7: a benchmark for software transactional memory. In: Proceedings of the 2nd ACM EuroSys European Conference on Computer Systems 2007, EuroSys 2007, pp. 315–324. ACM (2007)

    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, ISCA 1993, pp. 289–300. ACM (1993)

    Google Scholar 

  13. Kumar, R., Vidyasankar, K.: HParSTM: A hierarchy-based STM protocol for supporting nested parallelism. In: The 6th ACM SIGPLAN Workshop on Transactional Computing, TRANSACT 2011 (2011)

    Google Scholar 

  14. Liu, Y., Diestelhorst, S., Spear, M.F.: Delegation and nesting in best-effort hardware transactional memory. In: Proceedings of the 24th Annual Symposium on Parallelism in Algorithms and Architectures, SPAA 2012, pp. 38–47 (2012)

    Google Scholar 

  15. Minh, C.C., Chung, J., Kozyrakis, C., Olukotun, K.: STAMP: Stanford transactional applications for multi-processing. In: IEEE International Symposium on Workload Characterization, IISWC 2008, pp. 35–46 (2008)

    Google Scholar 

  16. Moss, J.E.B., Hosking, A.L.: Nested transactional memory: model and architecture sketches. Science of Computer Programming 63(2), 186–201 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  17. Perelman, D., Fan, R., Keidar, I.: On maintaining multiple versions in stm. In: Proceedings of the 29th ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, PODC 2010, pp. 16–25. ACM (2010)

    Google Scholar 

  18. Ramadan, H., Witchel, E.: The Xfork in the road to coordinated sibling transactions. In: The 4th ACM SIGPLAN Workshop on Transactional Computing, TRANSACT 2009 (2009)

    Google Scholar 

  19. Volos, H., Welc, A., Adl-Tabatabai, A.-R., Shpeisman, T., Tian, X., Narayanaswamy, R.: NePalTM: design and implementation of nested parallelism for transactional memory systems. In: Proceedings of the 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2009, pp. 291–292. ACM (2009)

    Google Scholar 

  20. Wang, A., Gaudet, M., Wu, P., Amaral, J.N., Ohmacht, M., Barton, C., Silvera, R., Michael, M.: Evaluation of blue Gene/Q hardware support for transactional memories. In: Proceedings of the 21st International Conference on Parallel Architectures and Compilation Techniques, PACT 2012, pp. 127–136. ACM (2012)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Diegues, N., Cachopo, J. (2013). Practical Parallel Nesting for Software Transactional Memory. In: Afek, Y. (eds) Distributed Computing. DISC 2013. Lecture Notes in Computer Science, vol 8205. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-41527-2_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-41527-2_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-41526-5

  • Online ISBN: 978-3-642-41527-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics