Abstract
This paper presents seven hash table Haskell implementations, ranging from low-level synchronization mechanisms to high-level ones such as transactional memories. The result of the comparison between the algorithms showed that the implementation using the STM Haskell transactional memory library and fine-grain synchronization presented the best performance and good scalability.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Data.CAS, July 2015. http://hackage.haskell.org/package/IORefCAS-0.1.0.1/docs/src/Data-CAS.html
Harris, T., Larus, J., Rajwar, R.: Transactional Memory (Synthesis Lectures on Computer Architecture). Morgan and Claypool, San Rafael (2010)
Harris, T., Marlow, S., Jones, S.P., Herlihy, M.: Composable memory transactions. Commun. ACM 51, 91–100 (2008)
Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Elsevier, San Francisco (2012). Revised Reprint
Leiserson, C.E., Rivest, R.L., Stein, C., Cormen, T.H.: Introduction to Algorithms. The MIT press, Cambridge (2001)
Marlow, S.: Parallel and Concurrent Programming in Haskell: Techniques for Multicore and Multithreaded Programming. O’Reilly Media, Inc., Sebastopol (2013)
Marlow, S., Harris, T., James, R.P., Peyton Jones, S.: Parallel generational-copying garbage collection with a block-structured heap. In: Proceedings of the 7th International Symposium on Memory Management, ISMM 2008, New York, NY, USA, pp. 11–20. ACM (2008)
Marlow, S., Peyton Jones, S., Singh, S.: Runtime support for multicore haskell. In: Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming, ICFP 2009, New York, NY, USA, pp. 65–78. ACM (2009)
Newton, R., Chen, C.-P., Marlow, S.: Intel concurrent collections for haskell. Technical report MIT-CSAIL-TR-2011-015, Massachusetts Institute of Technology, Cambridge, MA, USA (2011)
O’Sullivan, B., Goerzen, J., Stewart, D.B.: Real World Haskell. O’Reilly, Farnham (2008)
Peyton Jones, S.: Tackling the awkward squad: monadic input/output, concurrency, exceptions, and foreign-language calls in haskell. In: Hoare, T., Broy, M., Steinbruggen, R. (eds.) Engineering Theories of Software Construction, pp. 47–96. IOS Press, Amsterdam (2002)
Peyton Jones, S., Gordon, A., Finne, S.: Concurrent haskell. In: Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1996, New York, NY, USA, pp. 295–308. ACM (1996)
Shalev, O., Shavit, N.: Split-ordered lists: lock-free extensible hash tables. J. ACM (JACM) 53(3), 379–405 (2006)
Sönmez, N., Perfumo, C., Stipic, S., Cristal, A., Unsal, O.S., Valero, M.: UnreadTVar: extending haskell software transactional memory for performance. Trends Funct. Program. 8, 89–114 (2007)
Sulzmann, M., Lam, E.S., Marlow, S.: Comparing the performance of concurrent linked-list implementations in haskell. In: Proceedings of the 4th Workshop on Declarative Aspects of Multicore Programming, pp. 37–46. ACM (2009)
Acknowledgement
This work was supported by CAPES/Brasil (Programa Nacional de Cooperação Acadêmica da Coordenação de Aperfeiçoamento de Pessoal de Nível vel Superior).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Duarte, R.M., Du Bois, A.R., Pilla, M.L., Cavalheiro, G.G.H., Reiser, R.H.S. (2016). Concurrent Hash Tables for Haskell. In: Castor, F., Liu, Y. (eds) Programming Languages. SBLP 2016. Lecture Notes in Computer Science(), vol 9889. Springer, Cham. https://doi.org/10.1007/978-3-319-45279-1_8
Download citation
DOI: https://doi.org/10.1007/978-3-319-45279-1_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-45278-4
Online ISBN: 978-3-319-45279-1
eBook Packages: Computer ScienceComputer Science (R0)