skip to main content
abstract

Comparing the performance of concurrent linked-list implementations in Haskell (abstract only)

Published:06 October 2009Publication History
Skip Abstract Section

Abstract

Haskell has a rich set of synchronization primitives for implementing shared-state concurrency abstractions, ranging from the very high level (Software Transactional Memory) to the very low level (mutable variables with atomic read-modifywrite).

In this paper we perform a systematic comparison of these different concurrent programming models by using them to implement the same abstraction: a concurrent linked-list. Our results are somewhat surprising: there is a full two orders of magnitude difference in performance between the slowest and the fastest implementation. Our analysis of the performance results gives new insights into the relative performance of the programming models and their implementation.

Finally, we suggest the addition of a single primitive which in our experiments improves the performance of one of the STM-based implementations by more than a factor of 7.

Index Terms

(auto-classified)
  1. Comparing the performance of concurrent linked-list implementations in Haskell (abstract only)

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 44, Issue 5
      May 2009
      19 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1629635
      Issue’s Table of Contents

      Copyright © 2009 Authors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 6 October 2009

      Check for updates

      Qualifiers

      • abstract
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!