Lock Free Data Structures Using STM in Haskell

  • Anthony Discolo
  • Tim Harris
  • Simon Marlow
  • Simon Peyton Jones
  • Satnam Singh
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3945)

Abstract

This paper explores the feasibility of re-expressing concurrent algorithms with explicit locks in terms of lock free code written using Haskell’s implementation of software transactional memory. Experimental results are presented which show that for multi-processor systems the simpler lock free implementations offer superior performance when compared to their corresponding lock based implementations.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Carlstrom, B.D., Chung, J., Chafi, H., McDonald, A., Minh, C., Hammond, L., Kozyrakis, C., Olukotun, K.: Transactional Execution of Java Programs. In: SCOOL 2005 (2005)Google Scholar
  2. 2.
    Harris, T., Marlow, S., Jones, S.P., Herlihy, M.: Composable Memory Transactions. In: PPoPP 2005 (2005)Google Scholar
  3. 3.
    Hammond, L., Carlstrom, B.D., Wong, V., Hertzberg, B., Chen, M., Kozyrakis, C., Olukotun, K.: Programming with transactional coherence and consistency. In: Proceedings of the 11th International Conference on Architecture Support for Programming Languages and Operating Systems (October 2004)Google Scholar
  4. 4.
    Harris, T., Fraser, K.: Language support for lightweight transactions. In: OOPSLA 2003: Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, pp. 388–402. ACM Press, New York (2003)CrossRefGoogle Scholar
  5. 5.
    Herlihy, M.P., Luchangco, V., Moir, M., Scherer, W.M.: Software transactional memory for dynamic-sized data structures. In: Proceedings of the 22nd Annual Symposium on Principles of Distributed Computing (July 2003)Google Scholar
  6. 6.
    Herlihy, M., Moss, J.E.B.: Transactional memory: Architectural support for lock-free data structures. In: Proceedings of the 20th International Symposium on Computer Architecture (1993)Google Scholar
  7. 7.
    Itzstein, G.S., Kearney, D.: Join Java: An alternative concurrency semantics for Java. Tech. Rep. ACRC-01-001, University of South Australia (2001)Google Scholar
  8. 8.
    Jones, S.P., Gordon, A., Finne, S.: Concurrent Haskell. In: 23rd ACM Symposium on Principles of Programming Languages (POPL 1996), pp. 295–308 (1996)Google Scholar
  9. 9.
    Jones, S.P., Wadler, P.: Imperative functional programming. In: 20th ACM Symposium on Principles of Programming Languages (POPL 1993), pp. 71–84 (1993)Google Scholar
  10. 10.
    Shavit, N., Touitou, S.: Software transactional memory. In: Proc. of the 14th Annual ACM Symposium on Principles of Distributed Computing, Ottawa, Canada (August 1995)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Anthony Discolo
    • 1
  • Tim Harris
    • 2
  • Simon Marlow
    • 2
  • Simon Peyton Jones
    • 2
  • Satnam Singh
    • 1
  1. 1.MicrosoftRedmondUSA
  2. 2.Microsoft ResearchCambridgeUnited Kingdom

Personalised recommendations