Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Ryan Yates

dblp:172/8808 · DBLP profile ↗
← Back
3ranked-venue papers
2as first author
0since 2021 · last 2019
0009-0000-2870-9044ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 2 · 1 first-authorSystems, architecture and hardware · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
1 paper
Concurrent programming · 61% Runtime systems and virtual machines · 30% Programming languages and type systems · 9%

Topics — the 3 heaviest of 4, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Concurrent programming › transactional memory
hardware transactional memory
0.412019
Leveraging hardware TM in Haskell · PPoPP 2019
Concurrent programming
transactional memory
0.412019
Leveraging hardware TM in Haskell · PPoPP 2019
Programming languages and type systems
functional programming
0.112019
Leveraging hardware TM in Haskell · PPoPP 2019

Methods — techniques the papers use, named apart from their topics

retry mechanism · 0.4lazy subscription · 0.4
YearPublicationVenuePosition
2019 Leveraging hardware TM in Haskell
abstract
Transactional memory (TM) is heavily used for synchronization in the Haskell programming language, but its performance has historically been poor. We set out to improve this performance using hardware TM (HTM) on Intel processors. This task is complicated by Haskell's retry mechanism, which requires information to escape aborted transactions, and by the heavy use of indirection in the Haskell runtime, which means that even small transactions are likely to over-flow hardware buffers. It is eased by functional semantics, which preclude irreversible operations; by the static separation of transactional state, which precludes privatization; and by the error containment of strong typing, which enables so-called lazy subscription to the lock that protects the "fallback" code path.
Ryan Yates, Michael L. Scott
PPoPP1
2017 Improving STM performance with transactional structs
abstract
Software transactional memory (STM) has made it significantly easier to write correct concurrent programs in Haskell. Its performance, however, is limited by several inefficiencies. While safe concurrent computations are easy to express in Haskell's STM, concurrent data structures suffer unfortunate bloat in the implementation due to an extra level of indirection for mutable references as well as the inability to express unboxed mutable transactional values. We address these deficiencies by introducing TStruct to the GHC run-time system, allowing strict unboxed transactional values as well as mutable references without an extra indirection. Using TStruct we implement several data structures, discuss their design, and provide benchmark results on a large multicore machine. Our benchmarks show that concurrent data structures built with TStruct out-scale and out-perform their TVar-based equivalents.
Ryan Yates, Michael L. Scott
Haskell1
2016 Revisiting software transactional memory in Haskell
abstract
Software Transactional Memory (STM) has become very popular in Haskell. Currently, there are nearly 500 packages on Haskell’s package archive that directly use STM. Despite the widespread use in real world applications, Haskell’s STM implementation has seen very few updates since its introduction in 2005.
Matt Le 0001, Ryan Yates, Matthew Fluet
Haskell2