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.

Yujie Liu 0003

dblp:60/7006-3 · DBLP profile ↗
← Back
16ranked-venue papers
8as first author
0since 2021 · last 2019
0000-0002-2372-8737ORCID · corroborated

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

Systems, architecture and hardware · 15 · 8 first-authorSoftware engineering, systems software and programming languages · 2

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
6 papers
Concurrent programming · 85% Software maintenance and evolution · 12% Runtime systems and virtual machines · 4%
Computer architecture, parallel and distributed computing, and storage systems
4 papers
Parallel and multicore computing · 86% Memory systems · 8% Processor architecture and microarchitecture · 7%
Theoretical computer science
1 paper
Algorithms and data structures · 100%

Topics — the 11 heaviest of 13, 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
concurrent data structures
0.322014
Dynamic-sized nonblocking hash tables · PODC 2014
A nonblocking set optimized for querying the minimum value · PODC 2011
Concurrent programming › non-blocking algorithms
non-blocking data structures
0.322014
Dynamic-sized nonblocking hash tables · PODC 2014
A nonblocking set optimized for querying the minimum value · PODC 2011
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
Parallel and multicore computing › transactional memory
hardware transactional memory
0.212013
Using hardware transactional memory to correct and simplify and readers-writer lock algorithm · PPoPP 2013
Parallel and multicore computing › synchronization
reader-writer locks
0.212013
Using hardware transactional memory to correct and simplify and readers-writer lock algorithm · PPoPP 2013
Parallel and multicore computing
synchronization
0.212013
Using hardware transactional memory to correct and simplify and readers-writer lock algorithm · PPoPP 2013
Parallel and multicore computing
concurrent data structures
0.112012
A lock-free, array-based priority queue · PPoPP 2012
Algorithms and data structures
priority queues
0.112012
A lock-free, array-based priority queue · PPoPP 2012
Memory systems › data locality
cache locality
0.112014
Dynamic-sized nonblocking hash tables · PODC 2014

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

freezable set abstraction · 0.4timestamp-based consistency · 0.3hardware transactional memory · 0.3hardware cycle counter · 0.3transactional memory · 0.2eager and lazy transactional systems · 0.2dynamic reordering · 0.2non-blocking synchronization · 0.1
YearPublicationVenuePosition
2019 Optimizing Persistent Memory Transactions
abstract
Byte-addressable, non-volatile, random access memory (NVM) has the potential to dramatically accelerate the performance of storage-intensive workloads. For applications with irregular data access patterns, and applications that rely on ad-hoc data structures, the most promising model for interacting with NVM is a transactional model. However, the specifics of the model matter significantly. We introduce two models for programming persistent transactions. We show how to build concurrent persistent transactional memory from traditional software transactional memories. We then introduce general and model-specific optimizations that can substantially improve the performance of persistent transactions. Our evaluation shows a substantial improvement in the both the latency and scalability of persistent transactions.
Pantea Zardoshti, Tingzhe Zhou, Yujie Liu 0003, Michael F. Spear
PACT3
2015 TSXProf: Profiling Hardware Transactions
abstract
The availability of commercial hardware transactionalmemory (TM) systems has not yet been met with a rise in the numberof large-scale programs that use memory transactions explicitly. Asignificant impediment to the use of TM is the lack of tool support, specifically profilers that can identify and explain performance anomalies. In this paper, we introduce an end-to-end system that enables lowoverheadperformance profiling of large-scale transactional programs. We present algorithms and an implementation for Intel's Haswellprocessors. With our system, it is possible to record a transactionalprogram's execution with minimal overhead, and then replay it withina custom profiling tool to identify causes of contention and aborts, down to the granularity of individual memory accesses. Evaluationshows that our algorithms have low overhead, and our tools enableprogrammers to effectively explain performance anomalies.
Yujie Liu 0003, Justin Emile Gottschlich, Gilles Pokam, Michael F. Spear
PACT1
2015 Transactional Acceleration of Concurrent Data Structures
abstract
Concurrent data structures are a fundamental building block for scalable multi-threaded programs. While Transactional Memory (TM) was originally conceived as a mechanism for simplifying the creation of concurrent data structures, modern hardware TM systems lack the progress properties needed to completely obviate traditional techniques for designing concurrent data structures, especially those requiring nonblocking progress guarantees. In this paper, we introduce the Prefix Transaction Optimization (PTO) technique for employing hardware TM to accelerate existing concurrent data structures. Our technique consists of three stages: the creation of a prefix transaction, the mechanical optimization of the prefix transaction, and then algorithm-specific optimizations to further improve performance. We apply PTO to five nonblocking data structures, and observe speedups of up to 2x at one thread, and up to 3x at 8 threads.
Yujie Liu 0003, Tingzhe Zhou, Michael F. Spear
SPAA1
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
ASPLOS3
2014 Dynamic-sized nonblocking hash tables
abstract
This paper presents nonblocking hash table algorithms that support resizing in both directions: shrinking and growing. The heart of the table is a freezable set abstraction, which greatly simplifies the task of moving elements among buckets during a resize. Furthermore, the freezable set abstraction makes possible the use of highly optimized implementations of individual buckets, including implementations in which a single flat array is used for each bucket, which improves cache locality.
Yujie Liu 0003, Kunlong Zhang, Michael F. Spear
PODC1
2014 Transaction-friendly condition variables
abstract
Recent microprocessors and compilers have added support for transactional memory (TM). While state-of-the-art TM systems allow the replacement of lock-based critical sections with scalable, optimistic transactions, there is not yet an acceptable mechanism for supporting the use of condition variables in transactions. We introduce a new implementation of condition variables, which uses transactions internally, which can be used from within both transactions and lock-based critical sections, and which is compatible with existing C/C++ interfaces for condition synchronization. By moving most of the mechanism for condition synchronization into user-space, our condition variables have low overhead and permit flexible interfaces that can avoid some of the pitfalls of traditional condition variables. Performance evaluation on an unmodified PARSEC benchmark suite shows equivalent performance to lock-basedcode, and our transactional condition variables also make it possible to replace all locks in PARSEC with transactions.
Chao Wang 0090, Yujie Liu 0003, Michael F. Spear
SPAA2
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.2
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
CGO2
2013 Mindicators: A Scalable Approach to Quiescence
abstract
We introduce the Mindicator, a new shared object that is optimized for querying the minimum value of a set of values proposed by several processes. A mindicator may hold at most one value per process. This interface is designed for use in shared memory runtime systems, such as garbage collectors, software transactional memory (TM), and operating system kernels. We introduce linearizable and relaxed mindicator implementations, both of which are lock-free. Our algorithms employ a tree structure, where querying the minimum element takes constant time, and adding and removing elements from the set does not hinder scalability. In microbenchmarks and a synthetic TM workload, we show that both provide good scalability on the x86 and SPARC platforms.
Yujie Liu 0003, Victor Luchangco, Michael F. Spear
ICDCS1
2013 Using hardware transactional memory to correct and simplify and readers-writer lock algorithm
abstract
Designing correct synchronization algorithms is notoriously difficult, as evidenced by a bug we have identified that has apparently gone unnoticed in a well-known synchronization algorithm for nearly two decades. We use hardware transactional memory (HTM) to construct a corrected version of the algorithm. This version is significantly simpler than the original and furthermore improves on it by eliminating usage constraints and reducing space requirements. Performance of the HTM-based algorithm is competitive with the original in "normal" conditions, but it does suffer somewhat under heavy contention. We successfully apply some optimizations to help close this gap, but we also find that they are incompatible with known techniques for improving progress properties. We discuss ways in which future HTM implementations may address these issues. Finally, although our focus is on how effectively HTM can correct and simplify the algorithm, we also suggest bug fixes and workarounds that do not depend on HTM.
David Dice, Yossi Lev, Yujie Liu 0003, Victor Luchangco, Mark Moir
PPoPP3
2013 Practical Non-blocking Unordered Lists
Kunlong Zhang, Yujiao Zhao 0004, Yajun Yang, Yujie Liu 0003, Michael F. Spear
DISC4
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.2
2012 Mounds: Array-Based Concurrent Priority Queues
abstract
This paper introduces a concurrent data structure called the mound. The mound is a rooted tree of sorted lists that relies on randomization for balance. It supports O(log(log(N))) insert and O(log(N)) extract Min operations, making it suitable for use as a priority queue. We present two mound algorithms: the first achieves lock freedom via the use of a pure-software double-compare-and-swap (DCAS), and the second uses fine grained locks. Mounds perform well in practice, and support novel operations that we expect to be useful in parallel applications, such as extract Many and probabilistic extract Min.
Yujie Liu 0003, Michael F. Spear
ICPP1
2012 A lock-free, array-based priority queue
abstract
No abstract available.
Yujie Liu 0003, Michael F. Spear
PPoPP1
2012 Delegation and nesting in best-effort hardware transactional memory
abstract
The guiding design principle behind best-effort hardware transactional memory (BEHTM) is simplicity of implementation and verification. Only minimal modifications to the base processor architecture are allowed, thereby reducing the burden of verification and long-term support. In exchange, the hardware can support only relatively simple multiword atomic operations, and must fall back to a software run-time for any operation that exceeds the abilities of the hardware.
Yujie Liu 0003, Stephan Diestelhorst, Michael F. Spear
SPAA1
2011 A nonblocking set optimized for querying the minimum value
abstract
No abstract available.
Yujie Liu 0003, Michael F. Spear
PODC1