Skip to main content

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

Abstract

Computer architecture is undergoing, if not another revolution, then a vigorous shaking-up. The major chip manufacturers have, for the time being, simply given up trying to make processors run faster. Instead, they have recently started shipping ”multicore” architectures, in which multiple processors (cores) communicate directly through shared hardware caches, providing increased concurrency instead of increased clock speed. As a result, system designers and software engineers can no longer rely on increasing clock speed to hide software bloat. Instead, they must somehow learn to make effective use of increasing parallelism. This adaptation will not be easy. Conventional synchronization techniques based on locks and conditions are unlikely to be effective in such a demanding environment. Coarse-grained locks, which protect relatively large amounts of data, do not scale, and fine-grained locks introduce substantial software engineering problems. Transactional memory is a computational model in which threads synchronize by optimistic, lock-free transactions. This synchronization model promises to alleviate many (perhaps not all) of the problems associated with locking, and there is a growing community of researchers working on both software and hardware support for this approach. This paper surveys the area, with a focus on open research problems.

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. Ananian, S., Asanovic, K., Kuszmaul, B., Leiserson, C., Lie, S.: Unbounded transactional memory. In: Proc. 11th International Symposium on High-Performance Computer Architecture, pp. 316–327 (February 2005)

    Google Scholar 

  2. Attiya, H., Epstein, L., Shachnai, H., Tamir, T.: Transactional contention management as a non-clairvoyant scheduling problem. In: PODC 2006. Proceedings of the twenty-fifth annual ACM symposium on Principles of distributed computing, pp. 308–315. ACM Press, New York (2006)

    Chapter  Google Scholar 

  3. Dice, D., Shavit, N.: What really makes transactions faster?. In: Transact: First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (June 2006)

    Google Scholar 

  4. Guerraoui, R., Herlihy, M., Pochon, B.: Toward a theory of transactional contention managers. In: Fraigniaud, P. (ed.) DISC 2005. LNCS, vol. 3724, Springer, Heidelberg (2005)

    Google Scholar 

  5. Hammond, L., Wong, V., Chen, M., Carlstrom, B.D., Davis, J.D., Hertzberg, B., Prabhu, M.K., Wijaya, H., Kozyrakis, C., Olukotun, K.: Transactional memory coherence and consistency. In: Proc. 31st Annual International Symposium on Computer Architecture (June 2004)

    Google Scholar 

  6. Harris, T., Fraser, K.: Language support for lightweight transactions. In: Proceedings of the 18th ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, pp. 388–402. ACM Press, New York (2003)

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

  8. Herlihy, M.: Wait-free synchronization. ACM Transactions on Programming Languages and Systems (TOPLAS) 13(1), 124–149 (1991)

    Article  Google Scholar 

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

    Chapter  Google Scholar 

  10. 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, pp. 289–300. ACM Press, New York (1993)

    Chapter  Google Scholar 

  11. Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems (TOPLAS) 12(3), 463–492 (1990)

    Article  Google Scholar 

  12. Israeli, A., Rappoport, L.: Disjoint-access-parallel implementations of strong shared memory primitives. In: Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing, pp. 151–160. ACM Press, New York (1994)

    Chapter  Google Scholar 

  13. Marathe, V., Scherer, W., Scott, M.: Adaptive software transactional memory. Technical Report TR 868, Computer Science Department, University of Rochester (May 2005)

    Google Scholar 

  14. McDonald, A., Chung, J., Carlstrom, B., Minh, C., Chafi, H., Kozyrakis, C., Olukotun, K.: Architectural semantics for practical transactional memory (2006)

    Google Scholar 

  15. Michael, M.M., Scott, M.L.: Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In: Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing, pp. 267–275. ACM Press, New York (1996)

    Chapter  Google Scholar 

  16. Moir, M.: Practical implementations of non-blocking synchronization primitives. In: Proceedings of the sixteenth annual ACM symposium on Principles of distributed computing, pp. 219–228. ACM Press, New York (1997)

    Chapter  Google Scholar 

  17. Moir, M.: Hybrid transactional memory, Unpublished manuscript (July 2005)

    Google Scholar 

  18. Moore, K.E., Hill, M.D., Wood, D.A.: Thread-level transactional memory. Technical Report CS-TR-2005-1524, Dept. of Computer Sciences, University of Wisconsin (March 2005)

    Google Scholar 

  19. Moravan, M.J., Bobba, J., Moore, K.E., Yen, L., Hill, M.D., Liblit, B., Swift, M.M., Wood, D.A.: Supporting nested transactional memory in LogTM. In: ASPLOS-XII. Proceedings of the 12th international conference on Architectural support for programming languages and operating systems, pp. 359–370. ACM Press, New York (2006)

    Chapter  Google Scholar 

  20. Saha, B., Adl-Tabatabai, A.-R., Hudson, R., Minh, C.C., Hertzberg, B.: Mcrt-stm. In: PPoPP (2006)

    Google Scholar 

  21. Shavit, N., Touitou, D.: Software transactional memory. In: Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing, pp. 204–213. ACM Press, New York (1995)

    Chapter  Google Scholar 

  22. www.cs.wisc.edu/trans-memory

  23. Scherer III, W.N., Scott, M.L.: Advanced contention management for dynamic software transactional memory. In: PODC 2005. Proceedings of the twenty-fourth annual ACM symposium on Principles of distributed computing, pp. 240–248. ACM Press, New York (2005)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

V. Arvind Sanjiva Prasad

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Herlihy, M. (2007). The Multicore Revolution. In: Arvind, V., Prasad, S. (eds) FSTTCS 2007: Foundations of Software Technology and Theoretical Computer Science. FSTTCS 2007. Lecture Notes in Computer Science, vol 4855. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77050-3_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-77050-3_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-77049-7

  • Online ISBN: 978-3-540-77050-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics