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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
Harris, T., Marlow, S., Jones, S.P., Herlihy, M.: Composable Memory Transactions. In: PPoPP 2005 (2005)
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)
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)
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)
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)
Itzstein, G.S., Kearney, D.: Join Java: An alternative concurrency semantics for Java. Tech. Rep. ACRC-01-001, University of South Australia (2001)
Jones, S.P., Gordon, A., Finne, S.: Concurrent Haskell. In: 23rd ACM Symposium on Principles of Programming Languages (POPL 1996), pp. 295–308 (1996)
Jones, S.P., Wadler, P.: Imperative functional programming. In: 20th ACM Symposium on Principles of Programming Languages (POPL 1993), pp. 71–84 (1993)
Shavit, N., Touitou, S.: Software transactional memory. In: Proc. of the 14th Annual ACM Symposium on Principles of Distributed Computing, Ottawa, Canada (August 1995)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Discolo, A., Harris, T., Marlow, S., Jones, S.P., Singh, S. (2006). Lock Free Data Structures Using STM in Haskell. In: Hagiya, M., Wadler, P. (eds) Functional and Logic Programming. FLOPS 2006. Lecture Notes in Computer Science, vol 3945. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11737414_6
Download citation
DOI: https://doi.org/10.1007/11737414_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-33438-5
Online ISBN: 978-3-540-33439-2
eBook Packages: Computer ScienceComputer Science (R0)