Qiong Cai

dblp:04/4012 · DBLP profile ↗
← Back
14ranked-venue papers
5as first author
0since 2021 · last 2017
0000-0003-4152-1980ORCID · corroborated

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

Systems, architecture and hardware · 11 · 4 first-authorSoftware engineering, systems software and programming languages · 4 · 2 first-authorApplied, interdisciplinary, general and emerging computing · 3 · 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.

Computer architecture, parallel and distributed computing, and storage systems
3 papers
Memory systems · 58% Processor architecture and microarchitecture · 18% Energy-efficient computing · 16%
Software engineering, system software, and programming languages
1 paper
Program analysis · 61% Compilers and program optimization · 39%

Topics — the 15 heaviest of 16, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Memory systems
cache
0.312017
Fast and Accurate Exploration of Multi-level Caches Using Hierarchical Reuse Distance · HPCA 2017
Memory systems › memory hierarchy › cache hierarchy
multi-level cache
0.312017
Fast and Accurate Exploration of Multi-level Caches Using Hierarchical Reuse Distance · HPCA 2017
Memory systems › memory referencing behavior
reuse distance
0.312017
Fast and Accurate Exploration of Multi-level Caches Using Hierarchical Reuse Distance · HPCA 2017
Processor architecture and microarchitecture
chip multiprocessor
0.222010
Thread-management techniques to maximize efficiency in multicore and simultaneous multithreaded microprocessors · ACM Trans. Archit. Code Optim. 2010
Understanding the Thermal Implications of Multi-Core Architectures · IEEE Trans. Parallel Distributed Syst. 2007
Energy-efficient computing
power management
0.112010
Thread-management techniques to maximize efficiency in multicore and simultaneous multithreaded microprocessors · ACM Trans. Archit. Code Optim. 2010
Processor architecture and microarchitecture › multithreading
simultaneous multithreading
0.112010
Thread-management techniques to maximize efficiency in multicore and simultaneous multithreaded microprocessors · ACM Trans. Archit. Code Optim. 2010
Parallel and multicore computing › parallel programming runtimes
thread management
0.112010
Thread-management techniques to maximize efficiency in multicore and simultaneous multithreaded microprocessors · ACM Trans. Archit. Code Optim. 2010
Memory systems › cache › cache organization
sectored cache
0.112017
Fast and Accurate Exploration of Multi-level Caches Using Hierarchical Reuse Distance · HPCA 2017
Energy-efficient computing › thermal management
dynamic thermal management
0.112007
Understanding the Thermal Implications of Multi-Core Architectures · IEEE Trans. Parallel Distributed Syst. 2007
Energy-efficient computing
thermal management
0.112007
Understanding the Thermal Implications of Multi-Core Architectures · IEEE Trans. Parallel Distributed Syst. 2007
Program analysis
data flow analysis
0.112006
A lifetime optimal algorithm for speculative PRE · ACM Trans. Archit. Code Optim. 2006
Program analysis › memory analysis
lifetime analysis
0.112006
A lifetime optimal algorithm for speculative PRE · ACM Trans. Archit. Code Optim. 2006
Compilers and program optimization › compiler optimization › redundancy elimination
partial redundancy elimination
0.112006
A lifetime optimal algorithm for speculative PRE · ACM Trans. Archit. Code Optim. 2006
Parallel and multicore computing › parallel programming runtimes › thread management
thread migration
0.012007
Understanding the Thermal Implications of Multi-Core Architectures · IEEE Trans. Parallel Distributed Syst. 2007
Compilers and program optimization
code motion
0.012006
A lifetime optimal algorithm for speculative PRE · ACM Trans. Archit. Code Optim. 2006

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

trace synthesis · 0.3profiling · 0.3issue queue prioritization · 0.1frequency/voltage scaling · 0.1simulation · 0.1minimum cut · 0.1edge profiling · 0.1data flow analysis · 0.1
YearPublicationVenuePosition
2017 Fast and Accurate Exploration of Multi-level Caches Using Hierarchical Reuse Distance
abstract
Exploring the design space of the memory hierarchy requires the use of effective methodologies, tools, and models to evaluate different parameter values. Reuse distance is of one of the locality models used in the design exploration and permits analytical cache miss estimation, program characterization, and synthetic trace generation. Unfortunately, the reuse distance is limited to a single locality granularity. Hence, it is not a suitable model for caches with hybrid line sizes, such as sectored caches, an increasingly popular choice for large caches. In this work, we introduce a generalization to the reuse distance, which is able to capture locality seen at multiple granularities. We refer to it as Hierarchical Reuse Distance (HRD). The proposed model has same profiling and synthesis complexity as the traditional reuse distance, and our results show that HRD reduces the average miss rate error on sectored caches by more than three times. In addition, it has superior characteristics in exploring multi-level caches with conventional single line size. For instance, our method increases the accuracy on L2 and L3 by a factor of 4 and converges three orders of magnitude faster.
Rafael Kioji Vivas Maeda, Qiong Cai, Jiang Xu 0001, Zhe Wang 0003, Zhongyuan Tian
HPCA2
2016 Parallel Graph Processing on Modern Multi-core Servers: New Findings and Remaining Challenges
abstract
Big Data analytics and new problems in social networks, computational biology, and web connectivity led to a renewed research interest in graph processing. Due to "irregularity" of graph computations, efficient parallel graph processing faces a set of software and hardware challenges debated in literature. In this paper, by utilizing hardware performance counters, we characterize system bottlenecks, resource usage, and the efficiency of popular graph applications on the modern commodity hardware. We analyze selected graph applications (implemented in the Galois framework) on a variety of graph datasets: both scale-free graphs and meshes. Our profiling shows that with an increased number of cores the analyzed graph applications achieve a good speedup, which is highly correlated with utilized memory bandwidth. Contrary to traditional past stereotypes, we find that graph applications significantly benefit from hardware prefetchers. Moreover, the use of transparent huge pages (THP) exhibits a "double win" impact: 1) THP significantly decrease the TLB misses and page walk durations, and 2) THP boost the hardware prefetchers' performance. These insights shed light to understand the performance of emerging systems with large memories. Our profiling framework reports hardware counter values over time. It reveals the danger of using averages for a bottleneck and resource usage analysis: many applications have a time-varying behavior and stretch the usage of system resources to their peak. We discuss the new insights and remaining challenges for guiding the design of future hardware and software components for efficient graph processing.
Assaf Eisenman, Ludmila Cherkasova, Guilherme Magalhaes, Qiong Cai, Sachin Katti
MASCOTS4
2016 Parallel Graph Processing: Prejudice and State of the Art
abstract
Large graph processing has attracted much renewed attention due to its increased importance for a social network analysis. The efficient parallel graph processing faces a set of software and hardware issues, discussed in literature. The main cause of these challenges is the "irregularity" of graph computations and related difficulties in efficient parallelization of graph processing. Unbalanced computations, caused by uneven data partitioning, can affect application scalability. Moreover, the issue of poor data locality is another major concern, that makes the graph processing applications memory-bound. In this paper, we aim to profile how large, parallel graph applications (based on Galois framework) utilize modern systems, in particular, memory subsystem. We found that modern graph processing frameworks executed on the latest Intel multi-core systems (a single node server) exhibit a good data locality and achieve a good speedup with an increased number of cores, contrary to traditional past stereotypes. The application processing speedup is highly correlated with utilized memory bandwidth. At the same time, our measurements show that the memory bandwidth is not a bottleneck, and the analyzed graph applications are memory-latency bound. These new insights can help us in matching the resource demands of the graph processing applications to future system design parameters.
Assaf Eisenman, Ludmila Cherkasova, Guilherme Magalhaes, Qiong Cai, Paolo Faraboschi, Sachin Katti
ICPE4
2011 Thread shuffling: combining DVFS and thread migration toreduce energy consumptions for multi-core systems
Qiong Cai, José González 0002, Grigorios Magklis, Pedro Chaparro, Antonio González 0001
ISLPED1
2010 Thread-management techniques to maximize efficiency in multicore and simultaneous multithreaded microprocessors
abstract
We provide an analysis of thread-management techniques that increase performance or reduce energy in multicore and Simultaneous Multithreaded (SMT) cores. Thread delaying reduces energy consumption by running the core containing the critical thread at maximum frequency while scaling down the frequency and voltage of the cores containing noncritical threads. In this article, we provide an insightful breakdown of thread delaying on a simulated multi-core microprocessor. Thread balancing improves overall performance by giving higher priority to the critical thread in the issue queue of an SMT core. We provide a detailed breakdown of performance results for thread-balancing, identifying performance benefits and limitations. For those benchmarks where a performance benefit is not possible, we introduce a novel thread-balancing mechanism on an SMT core that can reduce energy consumption. We have performed a detailed study on an Intel microprocessor simulator running parallel applications. Thread delaying can reduce energy consumption by 4% to 44% with negligible performance loss. Thread balancing can increase performance by 20% or can reduce energy consumption by 23%.
Ryan N. Rakvic, Qiong Cai, José González 0002, Grigorios Magklis, Pedro Chaparro, Antonio González 0001
ACM Trans. Archit. Code Optim.2
2009 Dynamic thermal management using thin-film thermoelectric cooling
abstract
Multi-core architectures require Dynamic Thermal Management mechanisms (DTM) to handle (1) multiple hotspots and (2) global chip heating effect while finding the best trade-off between performance and thermal control. In that scenario Thin-Film Thermoelectric Cooling devices can be used to mitigate both effects since they provide on-die localized cooling with a dynamic and heterogeneous effect. This work proposes controlling TFTECs from the microarchitecture for an enhanced Dynamic Thermal Management in multi-core architectures. We show that by using our TFTEC-based proposals the performance is within 8% of that of a thermally-unconstrained processor.
Pedro Chaparro, José González 0002, Qiong Cai, Greg Chrysler
ISLPED3
2008 Meeting points: using thread criticality to adapt multicore hardware to parallel regions
abstract
We present a novel mechanism, called meeting point thread characterization, to dynamically detect critical threads in a parallel region. We define the critical thread the one with the longest completion time in the parallel region. Knowing the criticality of each thread has many potential applications. In this work, we propose two applications: thread delaying for multi-core systems and thread balancing for simultaneous multi-threaded (SMT) cores. Thread delaying saves energy consumptions by running the core containing the critical thread at maximum frequency while scaling down the frequency and voltage of the cores containing non-critical threads. Thread balancing improves overall performance by giving higher priority to the critical thread in the issue queue of an SMT core. Our experiments on a detailed microprocessor simulator with the Recognition, Mining, and Synthesis applications from Intel research laboratory reveal that thread delaying can achieve energy savings up to more than 40% with negligible performance loss. Thread balancing can improve performance from 1% to 20%.
Qiong Cai, José González 0002, Ryan N. Rakvic, Grigorios Magklis, Pedro Chaparro, Antonio González 0001
PACT1
2008 A software-hardware hybrid steering mechanism for clustered microarchitectures
abstract
Clustered microarchitectures provide a promising paradigm to solve or alleviate the problems of increasing microprocessor complexity and wire delays. High- performance out-of-order processors rely on hardware-only steering mechanisms to achieve balanced workload distribution among clusters. However, the additional steering logic results in a significant increase on complexity, which actually decreases the benefits of the clustered design. In this paper, we address this complexity issue and present a novel software-hardware hybrid steering mechanism for out-of-order processors. The proposed software- hardware cooperative scheme makes use of the concept of virtual clusters. Instructions are distributed to virtual clusters at compile time using static properties of the program such as data dependences. Then, at runtime, virtual clusters are mapped into physical clusters by considering workload information. Experiments using SPEC CPU2000 benchmarks show that our hybrid approach can achieve almost the same performance as a state-of-the-art hardware-only steering scheme, while requiring low hardware complexity. In addition, the proposed mechanism outperforms state-of-the-art software-only steering mechanisms by 5% and 10% on average for 2-cluster and 4-cluster machines, respectively.
Qiong Cai, Josep M. Codina, José González 0002, Antonio González 0001
IPDPS1
2008 Thread fusion
abstract
This work proposes Thread Fusion as an effective way of reducing power consumption when a Simultaneous Multi-Threaded (SMT) core is executing two threads from a homogeneous parallel application. Two dynamic instances of the same static instruction, each from a different thread are merged (fused) into a single instruction, consuming half of the resources of front-end pipeline stages. When the fused instruction is executed, it is cloned and it proceeds at full bandwidth. Our simulation results show average energy reduction of 10% with less than 1% impact on performance.
José González 0002, Qiong Cai, Pedro Chaparro, Grigorios Magklis, Ryan N. Rakvic, Antonio González 0001
ISLPED2
2007 Understanding the Thermal Implications of Multi-Core Architectures
abstract
Multi-core architectures are becoming the main design paradigm for current and future processors. The main reason is that multi-core designs provide an effective way of overcoming ILP limitations by exploiting TLP. In addition, it is a power- and complexity-effective way of taking advantage of the huge number of transistors that can be integrated on a chip. On the other hand, today’s higher than ever power densities have made temperature one of the main limitations of microprocessor evolution. Thermal management in multi-core architectures is a fairly new area. Some works have addressed dynamic thermal management in bi/quad-core architectures. This work provides insight and explores different alternatives for thermal management in multi-core architectures with 16 cores. Schemes employing both energy reduction and activity migration are explored and improvements for thread migration schemes are proposed.
Pedro Chaparro, José González 0002, Grigorios Magklis, Qiong Cai, Antonio González 0001
IEEE Trans. Parallel Distributed Syst.4
2006 Partial dead code elimination on predicated code regions
abstract
This paper presents the design, implementation and experimental evaluation of a practical region-based partial dead code elimination (PDE) algorithm on predicated code in the Open Research Compiler framework. Existing PDE algorithms are not applicable on predicated code due to the existence of if-converted branches in the program. The proposed algorithm processes all PDE candidates in a worklist and considers their partial deadness using predicate partition graphs. Our algorithm operates uniformly on individual hyperblocks as well as regions comprising of basic blocks and hyperblocks. The result of applying our algorithm to a single-entry multiple-exit (SEME) region is optimal: partially dead code cannot be removed without changing the branching structure of the program or potentially introducing new predicate defining instructions. We present statistical evidence about the PDE opportunities in the 17 SPEC95 and SPEC00 integer benchmarks. Our algorithm achieves performance improvements in 12 out of the 17 benchmarks on an Itanium machine at small compilation overheads. Our results indicate that our algorithm can be used as a practical pass before instruction scheduling. Copyright © 2006 John Wiley & Sons, Ltd.
Jingling Xue, Qiong Cai, Lin Gao 0002
Softw. Pract. Exp.2
2006 A lifetime optimal algorithm for speculative PRE
abstract
A lifetime optimal algorithm, called MC-PRE, is presented for the first time that performs speculative PRE based on edge profiles. In addition to being computationally optimal in the sense that the total number of dynamic computations for an expression in the transformed code is minimized, MC-PRE is also lifetime optimal since the lifetimes of introduced temporaries are also minimized. The key in achieving lifetime optimality lies not only in finding a unique minimum cut on a transformed graph of a given CFG, but also in performing a data-flow analysis directly on the CFG to avoid making unnecessary code insertions and deletions. The lifetime optimal results are rigorously proved. We evaluate our algorithm in GCC against three previously published PRE algorithms, namely, MC-PRE copt (Qiong and Xue's computationally optimal version of MC-PRE), LCM (Knoop, Rüthing, and Steffen's lifetime optimal algorithm for performing nonspeculative classic PRE), and CMP-PRE (Bodik, Gupta, and Soffa's PRE algorithm based on code-motion preventing (CMP) regions, which is speculative but not computationally optimal). We report and analyze our experimental results, obtained from both actual program execution and instrumentation, for all 22 C, C++ and FORTRAN 77 benchmarks from SPECcpu2000 on an Itanium 2 computer system. Our results show that MC-PRE (or MC-PRE copt ) is capable of eliminating more partial redundancies than both LCM and CMP-PRE (especially in functions with complex control flow), and, in addition, MC-PRE inserts temporaries with shorter lifetimes than MC-PRE copt . Each of both benefits has contributed to the performance improvements in benchmark programs at the costs of only small compile-time and code-size increases in some benchmarks.
Jingling Xue, Qiong Cai
ACM Trans. Archit. Code Optim.2
2004 Region-Based Partial Dead Code Elimination on Predicated Code
Qiong Cai, Lin Gao 0002, Jingling Xue
CC1
2003 Optimal and Efficient Speculation-Based Partial Redundancy Elimination
abstract
Existing profile-guided partial redundancy elimination (PRE) methods use speculation to enable the removal of partial redundancies along more frequently executed paths at the expense of introducing additional expression evaluations along less frequently executed paths. While being capable of minimizing the number of expression evaluations in some cases, they are, in general, not computationally optimal in achieving this objective. In addition, the experimental results for their effectiveness are mostly missing. This work addresses the following three problems: (1) Is the computational optimality of speculative PRE solvable in polynomial time? (2) Is edge profiling - less costly than path profiling - sufficient to guarantee the computational optimality? (3) Is the optimal algorithm (if one exists) lightweight enough to be used efficiently in a dynamic compiler? In this paper, we provide positive answers to the first two problems and promising results to the third. We present an algorithm that analyzes edge insertion points based on an edge profile. Our algorithm guarantees optimally that the total number of computations for an expression in the transformed code is always minimized with respect to the edge profile given. This implies that edge profiling, which is less costly than path profiling, is sufficient to guarantee this optimality. The key in the development of our algorithm lies in the removal of some non-essential edges (and consequently, all resulting non-essential nodes) from a flow graph so that the problem of finding an optimal code motion is reduced to one of finding a minimal cut in the reduced (flow) graph thus obtained. We have implemented our algorithm in Intel's Open Runtime Platform (ORP). Our preliminary results over a number of Java benchmarks show that our algorithm is lightweight and can be potentially a practical component in a dynamic compiler. As a result, our algorithm can also be profitably employed in a profile-guided static compiler in which compilation cost can often be sacrificed for code efficiency.
Qiong Cai, Jingling Xue
CGO1