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

Wenjia Ruan

dblp:127/9627 · DBLP profile ↗
← Back
5ranked-venue papers
5as first author
0since 2021 · last 2015
—ORCID · none

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

Systems, architecture and hardware · 4 · 4 first-authorSoftware engineering, systems software and programming languages · 2 · 2 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
3 papers
Concurrent programming · 75% Software maintenance and evolution · 19% Runtime systems and virtual machines · 6%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Processor architecture and microarchitecture · 100%

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

TopicWeightPapersLastEvidence papers
Concurrent programming
transactional memory
0.532014
Transactional Read-Modify-Write Without Aborts · ACM Trans. Archit. Code Optim. 2014
Transactionalizing legacy code: an experience report using GCC and Memcached · ASPLOS 2014
Boosting timestamp-based transactional memory by exploiting hardware cycle counters · ACM Trans. Archit. Code Optim. 2013
Concurrent programming › concurrency control
conflict detection
0.212014
Transactional Read-Modify-Write Without Aborts · ACM Trans. Archit. Code Optim. 2014
Software maintenance and evolution › software reengineering
software modernization
0.212014
Transactionalizing legacy code: an experience report using GCC and Memcached · ASPLOS 2014

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

timestamp-based consistency · 0.3hardware cycle counter · 0.3transactional memory · 0.2eager and lazy transactional systems · 0.2dynamic reordering · 0.2
YearPublicationVenuePosition
2015 Hybrid Transactional Memory Revisited
Wenjia Ruan, Michael F. Spear
DISC1
2014 Transactionalizing legacy code: an experience report using GCC and Memcached
abstract
The addition of transactional memory (TM) support to existing languages provides the opportunity to create new soft- ware from scratch using transactions, and also to simplify or extend legacy code by replacing existing synchronization with language-level transactions. In this paper, we describe our experiences transactionalizing the memcached application through the use of the GCC implementation of the Draft C++ TM Specification. We present experiences and recommendations that we hope will guide the effort to integrate TM into languages, and that may also contribute to the growing collective knowledge about how programmers can begin to exploit TM in existing production-quality software.
Wenjia Ruan, Trilok Vyas, Yujie Liu 0003, Michael F. Spear
ASPLOS1
2014 Transactional Read-Modify-Write Without Aborts
abstract
Language-level transactions are said to provide “atomicity,” implying that the order of operations within a transaction should be invisible to concurrent transactions and thus that independent operations within a transaction should be safe to execute in any order. In this article, we present a mechanism for dynamically reordering memory operations within a transaction so that read-modify-write operations on highly contended locations can be delayed until the very end of the transaction. When integrated with traditional transactional conflict detection mechanisms, our approach reduces aborts on hot memory locations, such as statistics counters, thereby improving throughput and reducing wasted work. We present three algorithms for delaying highly contended read-modify-write operations within transactions, and we evaluate their impact on throughput for eager and lazy transactional systems across multiple workloads. We also discuss complications that arise from the interaction between our mechanism and the need for strong language-level semantics, and we propose algorithmic extensions that prevent errors from occurring when accesses are aggressively reordered in a transactional memory implementation with weak semantics.
Wenjia Ruan, Yujie Liu 0003, Michael F. Spear
ACM Trans. Archit. Code Optim.1
2013 On the platform specificity of STM instrumentation mechanisms
abstract
Supporting atomic blocks (e.g., Transactional Memory (TM)) can have far-reaching effects on language design and implementation. While much is known about the language-level semantics of TM and the performance of algorithms for implementing TM, little is known about how platform characteristics affect the manner in which a compiler should instrument code to achieve efficient transactional behavior. We explore the interaction between compiler instrumentation and the performance of transactions. Through evaluation on ARM/Android, SPARC/Solaris, IA32/Linux and IA32/MacOS, we show that the compiler must consider the platform when determining which analyses, transformations, and optimizations to perform. Implementation issues include how TM library code is reached, how per-thread TM metadata is stored and accessed, and how a library switches between modes of operation. We also show that different platforms favor different TM algorithms, through the introduction of a new TM algorithm for the ARM processor. Our findings will affect compiler and TM library designers: to achieve peak performance for transactions, the compiler must perform platform-dependent analysis, transformation, and optimization, and the interface to the TM library must differ according to platform.
Wenjia Ruan, Yujie Liu 0003, Chao Wang 0090, Michael F. Spear
CGO1
2013 Boosting timestamp-based transactional memory by exploiting hardware cycle counters
abstract
Time-based transactional memories typically rely on a shared memory counter to ensure consistency. Unfortunately, such a counter can become a bottleneck. In this article, we identify properties of hardware cycle counters that allow their use in place of a shared memory counter. We then devise algorithms that exploit the x86 cycle counter to enable bottleneck-free transactional memory runtime systems. We also consider the impact of privatization safety and hardware ordering constraints on the correctness, performance, and generality of our algorithms.
Wenjia Ruan, Yujie Liu 0003, Michael F. Spear
ACM Trans. Archit. Code Optim.1