UR Research > Computer Science Department > CS Ph.D. Theses >

Improving Haskell transactional memory

URL to cite or link to: http://hdl.handle.net/1802/35367

Yates_rochester_0188E_11946.pdf   1.32 MB (No. of downloads : 375)
PDF of thesis
Thesis (Ph. D.)--University of Rochester. Department of Computer Science, 2019.
The Haskell programming language is an active laboratory for cutting edge ideas. Early in the evolution of transactional memory (TM), Haskell included language support and quickly grew a community of TM users. Since TM's inclusion in Haskell, a flurry of research has brought significant developments in TM in non-Haskell contexts including improved understanding of TM semantics, higher-performance implementations, and support for TM in commodity hardware. The community of Haskell TM users has continued to grow, largely due to composition and blocking features that are included in Haskell's TM but are typically missing from TM implementations in other languages. In this thesis we connect Haskell with new developments from the TM research community while preserving Haskell's rich TM features. We explore the challenges of integrating new ideas, including Transactional Locking II and hardware TM (HTM) into a pure functional programming language, and evaluate the performance of our developments. Achieving good cache performance, particularly avoiding speculative overflow, is critical to realizing benefits from HTM in its current form. To this end we implement a TM that removes indirection and allows for multiple transactional fields in a single heap object. To enable access to these features, we extend the Haskell language, implementing support for mutable constructor fields. Together these changes yield an implementation with significantly better performance than the original TM. We also explore the potential of using Haskell's advanced type system to decrease the cost of unused features. We argue that this can be achieved while still maintaining the existing API. More static information can be used both by the compiler to improve code and by users to better understand the performance characteristics of their code.
Contributor(s):
Ryan Yates - Author

Michael L. Scott (1959 - ) - Thesis Advisor
ORCID: 0000-0001-8652-7644

Primary Item Type:
Thesis
Identifiers:
Local Call No. AS38.661
Language:
English
Subject Keywords:
Transactional memory; Haskell; Concurrency
Sponsor - Description:
IBM Centre for Advanced Studies -
National Science Foundation (NSF) - CCR-0963759; CCF-1116055; CCF-1337224; CCF-1422649
First presented to the public:
10/8/2019
Originally created:
2019
Original Publication Date:
2019
Previously Published By:
University of Rochester
Place Of Publication:
Rochester, N.Y.
Citation:
Extents:
Illustrations - illustrations
Number of Pages - xxi, 211 pages
License Grantor / Date Granted:
Angela Grunzweig / 2019-10-08 14:52:28.414 ( View License )
Date Deposited
2019-10-08 14:52:28.414
Date Last Updated
2020-01-10 10:47:52.823
Submitter:
Angela Grunzweig

Copyright © This item is protected by copyright, with all rights reserved.

All Versions

Thumbnail Name Version Created Date
Improving Haskell transactional memory1 2019-10-08 14:52:28.414