Abstract

This paper presents seven concurrent hash table implementations in Haskell, ranging from low-level synchronization mechanisms to high-level ones such as transactional memories. The hash tables were compared using different initial sizes, load factors, data types and hash functions. We also present a case study on implementing a color palette algorithm using the hash tables. The result of the comparison between the algorithms shows that the implementation using the STM Haskell transactional memory library and fine-grain synchronization provides the best performance and good scalability, followed by the implementation using lock striping and MVars. • The paper describes seven concurrent hash table implementations in Haskell. • Different abstractions were used: MVars, compare and swap, and transactional memory. • Detailed performance comparison of the hash tables is presented. • STM Haskell with fine-grain synchronization shows the best performance in overall.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call