Skip to main content

Concurrent Hash Tables for Haskell

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9889))

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.

This is a preview of subscription content, log in via an institution.

Buying options

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

Learn about institutional subscriptions

References

  1. Data.CAS, July 2015. http://hackage.haskell.org/package/IORefCAS-0.1.0.1/docs/src/Data-CAS.html

  2. Harris, T., Larus, J., Rajwar, R.: Transactional Memory (Synthesis Lectures on Computer Architecture). Morgan and Claypool, San Rafael (2010)

    Google Scholar 

  3. Harris, T., Marlow, S., Jones, S.P., Herlihy, M.: Composable memory transactions. Commun. ACM 51, 91–100 (2008)

    Article  Google Scholar 

  4. Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Elsevier, San Francisco (2012). Revised Reprint

    Google Scholar 

  5. Leiserson, C.E., Rivest, R.L., Stein, C., Cormen, T.H.: Introduction to Algorithms. The MIT press, Cambridge (2001)

    MATH  Google Scholar 

  6. Marlow, S.: Parallel and Concurrent Programming in Haskell: Techniques for Multicore and Multithreaded Programming. O’Reilly Media, Inc., Sebastopol (2013)

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  10. O’Sullivan, B., Goerzen, J., Stewart, D.B.: Real World Haskell. O’Reilly, Farnham (2008)

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  13. Shalev, O., Shavit, N.: Split-ordered lists: lock-free extensible hash tables. J. ACM (JACM) 53(3), 379–405 (2006)

    Article  MathSciNet  MATH  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Rodrigo Medeiros Duarte .

Editor information

Editors and Affiliations

Rights and permissions

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

Publish with us

Policies and ethics