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.

Qing Yi

dblp:64/3448 · DBLP profile ↗
← Back
34ranked-venue papers
10as first author
2since 2021 · last 2025
—ORCID · conflict

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

Systems, architecture and hardware · 23 · 4 first-author · 1 since 2021Software engineering, systems software and programming languages · 8 · 4 first-author · 1 since 2021Computer networks · 3 · 3 first-authorDatabases, data management, data science and information retrieval · 2 · 1 since 2021Artificial intelligence and machine learning · 1Applied, interdisciplinary, general and emerging computing · 1

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
7 papers
Compilers and program optimization · 60% Concurrent programming · 30% Program synthesis and code generation · 10%
Computer architecture, parallel and distributed computing, and storage systems
6 papers
High-performance computing · 37% Parallel and multicore computing · 22% Cloud and datacenter computing · 16%
Network and information security
1 paper
Systems and software security · 100%

Topics — the 22 heaviest of 23, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Concurrent programming › non-blocking algorithms
lock-free data structures
0.412019
Automating Non-Blocking Synchronization In Concurrent Data Abstractions · ASE 2019
Compilers and program optimization
compiler optimization
0.422014
Specializing Compiler Optimizations through Programmable Composition for Dense Matrix Computations · MICRO 2014
Layout-oblivious compiler optimization for matrix computations · ACM Trans. Archit. Code Optim. 2013
Systems and software security › vulnerability analysis
information-flow vulnerability detection
0.212015
Automatic Detection of Information Leakage Vulnerabilities in Browser Extensions · WWW 2015
Parallel and multicore computing › task partitioning
dynamic partitioning
0.212015
Understanding Parallel Performance Under Interferences in Multi-tenant Clouds · SIGMETRICS 2015
Cloud and datacenter computing › multi-tenancy
multi-tenant cloud
0.212015
Understanding Parallel Performance Under Interferences in Multi-tenant Clouds · SIGMETRICS 2015
Performance modeling and evaluation
workload characterization
0.212015
Understanding Parallel Performance Under Interferences in Multi-tenant Clouds · SIGMETRICS 2015
Compilers and program optimization
code generation
0.212013
AUGEM: automatically generate high performance dense linear algebra kernels on x86 CPUs · SC 2013
Program synthesis and code generation › generative programming
template-based code generation
0.212013
AUGEM: automatically generate high performance dense linear algebra kernels on x86 CPUs · SC 2013
High-performance computing › linear algebra library
BLAS
0.212013
AUGEM: automatically generate high performance dense linear algebra kernels on x86 CPUs · SC 2013
High-performance computing › numerical linear algebra
dense linear algebra
0.212013
AUGEM: automatically generate high performance dense linear algebra kernels on x86 CPUs · SC 2013
Concurrent programming › transactional memory
software transactional memory
0.112019
Automating Non-Blocking Synchronization In Concurrent Data Abstractions · ASE 2019
Parallel and multicore computing › parallel computing
parallel application performance
0.112015
Understanding Parallel Performance Under Interferences in Multi-tenant Clouds · SIGMETRICS 2015
High-performance computing
scientific computing systems
0.122014
Specializing Compiler Optimizations through Programmable Composition for Dense Matrix Computations · MICRO 2014
High Performance Fortran Compilation Techniques for Parallelizing Scientific Codes · SC 1998
Processor architecture and microarchitecture
instruction set architecture
0.012013
AUGEM: automatically generate high performance dense linear algebra kernels on x86 CPUs · SC 2013
High-performance computing
numerical linear algebra
0.012013
Layout-oblivious compiler optimization for matrix computations · ACM Trans. Archit. Code Optim. 2013
High-performance computing
scientific computing
0.012013
Layout-oblivious compiler optimization for matrix computations · ACM Trans. Archit. Code Optim. 2013
Processor architecture and microarchitecture › SIMD
SIMD instructions
0.012013
AUGEM: automatically generate high performance dense linear algebra kernels on x86 CPUs · SC 2013
Compilers and program optimization
loop transformation
0.012000
Transforming loops to recursion for multi-level memory hierarchies · PLDI 2000
Memory systems
memory hierarchy
0.012000
Transforming loops to recursion for multi-level memory hierarchies · PLDI 2000
Compilers and program optimization
loop optimization
0.011998
High Performance Fortran Compilation Techniques for Parallelizing Scientific Codes · SC 1998
Compilers and program optimization
parallelizing compiler
0.011998
High Performance Fortran Compilation Techniques for Parallelizing Scientific Codes · SC 1998
Parallel and multicore computing › parallel computing
parallel scientific computing
0.011998
High Performance Fortran Compilation Techniques for Parallelizing Scientific Codes · SC 1998

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

static analysis · 0.4dynamic analysis · 0.4synchronization tailoring · 0.4compiler transformation · 0.4source-level analysis · 0.4dynamic tagging · 0.4coordination handles · 0.4template-based optimization · 0.3parameterized code templates · 0.3low-level c optimization · 0.3profiling · 0.2hypervisor scheduling optimization · 0.2source-to-source compilation · 0.2transitive dependence analysis · 0.0
YearPublicationVenuePosition
2025 FormalSpecCpp: A Dataset of C++ Formal Specifications created using LLMs
abstract
FormalSpecCpp is a dataset designed to fill the gap in standardized benchmarks for verifying formal specifications in C++ programs. To the best of our knowledge, this is the first comprehensive collection of C++ programs with well-defined preconditions and postconditions. It provides a structured benchmark for evaluating specification inference tools and testing the accuracy of generated specifications. Researchers and developers can use this dataset to benchmark specification inference tools, fine-tune Large Language Models (LLMs) for automated specification generation, and analyze the role of formal specifications in improving program verification and automated testing. By making this dataset publicly available, we aim to advance research in program verification, specification inference, and AIassisted software development. The dataset and the code are available at https://github.com/MadhuNimmo/FormalSpecCpp.
Madhurima Chakraborty, Peter Pirkelbauer, Qing Yi
MSR3
2024 Compiler-driven approach for automating nonblocking synchronization in concurrent data abstractions
Jiange Zhang, Qing Yi, Christina L. Peterson, Damian Dechev
Concurr. Comput. Pract. Exp.2
2019 Accelerating parallel graph computing with speculation
abstract
Nowadays distributed graph computing is widely used to process large amount of data on the internet. Communication overhead is a critical factor in determining the overall efficiency of graph algorithms. Through speculative prediction of the content of communications, we develop an optimization technique to significantly reduce the amount of communications needed for a class of graph algorithms. We have evaluated our optimization technique using five graph algorithms, Single-source shortest path, Connected Components, PageRank, Diameter, and Random Walk, on the Amazon EC2 clusters using different graph datasets. Our optimized implementations have reduced communication overhead by 21--93% for these algorithms, while keeping the error rates under 5%.
Yinliang Zhao, Qing Yi
CF3
2019 Traffic Consolidation for Green Optical DCNs
abstract
Present-day datacenter networks (DCNs) are designed to provide full-bisection bandwidth in order to support high network throughput and server agility. However, many studies have shown average utilization of the DCN is very low even at high server loads. As a result, there is a significant waste of energy resources in modern datacenters. In this paper we describe the construction and evaluation of a hardware device that consolidates traffic going between servers and the top- of-rack (ToR) switch. The consolidator operates entirely in the optical domain and has very low power consumption. We evaluate the performance of the consolidator in a small network. Subsequently, using simulations, we show that for larger systems, the consolidator allows energy savings of almost 70% at light loads and scales with increasing loads.
Qing Yi, Suresh Singh 0001
GLOBECOM1
2019 Automating Non-Blocking Synchronization In Concurrent Data Abstractions
abstract
This paper investigates using compiler technology to automatically convert sequential C++ data abstractions, e.g., queues, stacks, maps, and trees, to concurrent lock-free implementations. By automatically tailoring a number of state-of-the-practice synchronization methods to the underlying sequential implementations of different data structures, our automatically synchronized code can attain performance competitive to that of manually-written concurrent data structures by experts and much better performance than heavier-weight support by software transactional memory (STM).
Jiange Zhang, Qing Yi, Damian Dechev
ASE2
2018 Improving Resource Utilization through Demand Aware Process Scheduling
abstract
Traditional process scheduling in the operating system focuses on high CPU utilization while achieving fairness among the processes. However, this can lead to an inefficient usage of other hardware resources, e.g., the caches, which have limited capacity and is a scarce resource on most systems. This paper extends a traditional operating system scheduler to schedule processes more efficiently against hardware resources. Through the introduction of a new concept, a progress period, which models the variation of resource access characteristics during application execution, our scheduling extension dynamically monitors the changes in resource access behavior of each process being scheduled, tracks their collective usage of hardware resources, and schedules the processes to decrease overall system power consumption without compromising performance. Testing this scheduling system on programs on an Intel(R) Xeon(R) E5-2420 CPU with twelve kernels from the BLAS suite and five applications from the SPLASH-2 benchmark suite yielded a 48% maximum decrease in system energy consumption (average 12%), and a 1.88x maximum increase in application performance (average 1.16x).
Brandon Nesterenko, Qing Yi, Jia Rao
ICPP2
2016 Characterizing and Optimizing the Performance of Multithreaded Programs Under Interference
abstract
As virtualization becomes ubiquitous in datacenters, there is a growing interest in characterizing application performance in multi-tenant environments to improve datacenter resource management. The performance of parallel programs is notoriously difficult to reason about in virtualized environments. Although performance degradations caused by virtualization and interferences have been extensively studied, there still lacks a comprehensive understanding why parallel programs have unpredictable slowdowns when co-located with different types of workloads.
Jia Rao, Qing Yi
PACT3
2016 Compiler-Assisted Overlapping of Communication and Computation in MPI Applications
abstract
The performance of distributed-memory applications, many of which are written in MPI, critically depends on how well the applications can ameliorate the long latency of data movement by overlapping them with ongoing computations, thereby minimizing wait time. This paper presents a study of the various optimization techniques to enable such overlapping in large MPI applications and presents a framework that uses an analytical performance model and an optimizing compiler to systematically enable a majority of such optimizations. In particular, we first generate an analytical performance model of the application execution flow to automatically identify potential communication hot spots that may induce long wait time. Next, for each communication hot spot, we search the execution flow graph to find surrounding loops that include sufficient local computation to overlap with the communication. Then, blocking MPI communications are decoupled into non-blocking operations when necessary, and their surrounding loop is transformed to hide the communication latencies behind local computations. We evaluated our framework using 7 MPI applications from the NAS benchmark suite. Our optimizations can attain 3% to 72% speedup over the original implementations.
Jichi Guo, Qing Yi, Jiayuan Meng, Junchao Zhang 0002, Pavan Balaji
CLUSTER2
2016 Automatic Algorithm Selection in Computational Software Using Machine Learning
abstract
Computational software programs, such as Maple and Mathematica, heavily rely on superfunctions and meta-algorithms to select the optimal algorithm for a given task. These meta-algorithms may require intensive mathematical proof to formulate, incur large computational overhead, or fail to consistently select the best algorithm. Machine learning demonstrates a promising alternative for automatic algorithm selection by easing the design process and overhead while also attaining high accuracy in selection. In a case study on the resultant superfunction, a trained neural network is able to select the best algorithm out of the four available 86% of the time in Maple and 78% of the time in Mathematica. When used as a replacement for pre-existing meta-algorithms, the neural network brings about a 68% runtime improvement in Maple and 49% improvement in Mathematica. Random forests, k-nearest neighbors, and both linear and RBF kernel SVMs are also compared to the neural network model, the latter of which offers the best performance out of the tested machine learning methods.
Matthew C. Simpson, Qing Yi, Jugal K. Kalita
ICMLA2
2015 Usage based topology for DCNs
abstract
Many data center network topologies are designed to provide full bisection bandwidth for tens of thousands of servers in order to achieve high network throughput and server agility. However, the utilization rate of DCNs on average is below 10%, which results in a significant waste of network resources and energy. Many researchers propose consolidating network traffic flows to maximize the set of idle network equipment and switching them to low power mode to save energy. In this paper, we propose using skinnier network topologies to meet performance requirements of realistic loads thus saving not only energy but capital cost as well. We undertake a comprehensive study of the sub-graphs of fat-trees for different traffic characteristics and present an analytical model for the number of switches required in each layer of the topology. Furthermore, we examine the potential energy savings of utilizing higher-port-count switches at the edge layer and evaluate the reduced energy consumption using the power data of Cisco modular switches.
Qing Yi, Suresh Singh 0001
ICC1
2015 Understanding Parallel Performance Under Interferences in Multi-tenant Clouds
abstract
The performance of parallel programs is notoriously difficult to reason in virtualized environments. Although performance degradations caused by virtualization and interferences have been well studied, there is little understanding why different parallel programs have unpredictable slow- downs. We find that unpredictable performance is the result of complex interplays between the design of the program, the memory hierarchy of the hosting system, and the CPU scheduling in the hypervisor. We develop a profiling tool, vProfile, to decompose parallel runtime into three parts: compute, steal and synchronization. With the help of time breakdown, we devise two optimizations at the hypervisor to reduce slowdowns.
Jia Rao, Xiaobo Zhou 0002, Qing Yi
SIGMETRICS4
2015 Automatic Detection of Information Leakage Vulnerabilities in Browser Extensions
abstract
A large number of extensions exist in browser vendors' online stores for millions of users to download and use. Many of those extensions process sensitive information from user inputs and webpages; however, it remains a big question whether those extensions may accidentally leak such sensitive information out of the browsers without protection. In this paper, we present a framework, LvDetector, that combines static and dynamic program analysis techniques for automatic detection of information leakage vulnerabilities in legitimate browser extensions. Extension developers can use LvDetector to locate and fix the vulnerabilities in their code; browser vendors can use LvDetector to decide whether the corresponding extensions can be hosted in their online stores; advanced users can also use LvDetector to determine if certain extensions are safe to use. The design of LvDetector is not bound to specific browsers or JavaScript engines, and can adopt other program analysis techniques. We implemented LvDetector and evaluated it on 28 popular Firefox and Google Chrome extensions. LvDetector identified 18 previously unknown information leakage vulnerabilities in 13 extensions with a 87% accuracy rate. The evaluation results and the feedback to our responsible disclosure demonstrate that LvDetector is useful and effective.
Rui Zhao 0005, Chuan Yue, Qing Yi
WWW3
2014 Achieving energy-proportionality in fat-tree DCNs
abstract
Fat-tree is a popular topology for data center networks (DCNs). Many recent papers propose new energy-efficient techniques that reduce the power consumption of fat-tree DCNs by dynamically powering off idle network switches and links. However, fat-tree DCNs adopting those techniques still consume a significant amount of energy even when lightly loaded. In this paper, we examine the approach of merging traffic in a fat-tree DCN in order to consolidate the traffic into fewer switches. We first derive an analytical model for the lower-bound of active switches required in a fat-tree DCN as a function of load, assuming traffic merging. Then we formulate a power optimization model and propose a scalable heuristic algorithm to find the minimum subset of network switches and links that satisfies a variety of traffic patterns and loads in actual DCNs. Simulation results show that our approach can substantially reduce the number of active switches and lower the energy consumption of a fat-tree DCN when the load is light. We show that our solution achieves near energy proportionality.
Qing Yi, Suresh Singh 0001
GLOBECOM1
2014 Analytically Modeling Application Execution for Software-Hardware Co-design
abstract
Software-hardware co-design has become increasingly important as the scale and complexity of both are reaching an unprecedented level. To predict and understand application behavior on emerging or conceptual systems, existing research has mostly relied on cycle-accurate micro-architecture simulators, which are known to be time-consuming and are oblivious to workloads' control flow structure. As a result, simulations are often limited to small kernels, and the first step in the co-design process is often to extract important kernels, construct mini-applications, and identify potential hardware limitations. This requires a high level understanding about the full applications' potential behavior on a future system, e.g. the most time-consuming regions, the performance bottlenecks for these regions, etc. Unfortunately, such application knowledge gained from one system may not hold true on a future system. One solution is to instrument the full application with timers and simulate it with a reasonable input size, which can be a daunting task in itself. We propose an alternative approach to gain first-order insights into hardware-dependent application behavior by trading off the accuracy of analysis for improved efficiency. By modeling the execution flows of user applications and analyzing it using target hardware's performance models, our technique requires no cycle-accurate simulation on a prospective system. In fact, our technique's analysis time does not increase with the input data size.
Jichi Guo, Jiayuan Meng, Qing Yi, Vitali A. Morozov, Kalyan Kumaran
IPDPS3
2014 Specializing Compiler Optimizations through Programmable Composition for Dense Matrix Computations
abstract
General purpose compilers aim to extract the best average performance for all possible user applications. Due to the lack of specializations for different types of computations, compiler attained performance often lags behind those of the manually optimized libraries. In this paper, we demonstrate a new approach, programmable composition, to enable the specialization of compiler optimizations without compromising their generality. Our approach uses a single pass of source-level analysis to recognize a common pattern among dense matrix computations. It then tags the recognized patterns to trigger a sequence of general-purpose compiler optimizations specially composed for them. We show that by allowing different optimizations to adequately communicate with each other through a set of coordination handles and dynamic tags inserted inside the optimized code, we can specialize the composition of general-purpose compiler optimizations to attain a level of performance comparable to those of manually written assembly code by experts, thereby allowing selected computations in applications to benefit from similar levels of optimizations as those manually applied by experts.
Qing Yi, Huimin Cui
MICRO1
2013 Vectorization past dependent branches through speculation
abstract
Modern architectures increasingly rely on SIMD vectorization to improve performance for floating point intensive scientific applications. However, existing compiler optimization techniques for automatic vectorization are inhibited by the presence of unknown control flow surrounding partially vectorizable computations. In this paper, we present a new approach, speculative vectorization, which speculates past dependent branches to aggressively vectorize computational paths that are expected to be taken frequently at runtime, while simply restarting the calculation using scalar instructions when the speculation fails. We have integrated our technique in an iterative optimizing compiler and have employed empirical tuning to select the profitable paths for speculation. When applied to optimize 9 floating-point benchmarks, our optimizing compiler has achieved up to 6.8X speedup for single precision and 3.4X for double precision kernels using AVX, while vectorizing some operations considered not vectorizable by prior techniques.
Majedul Haque Sujon, R. Clint Whaley, Qing Yi
PACT3
2013 Enhancing Performance Portability of MPI Applications through Annotation-Based Transformations
abstract
MPI is the de facto standard for portable parallel programming on high-end systems. However, while the MPI standard provides functional portability, it does not provide sufficient performance portability across platforms. We present a framework that enables users to provide hints about communication patterns used within MPI applications. These annotations are then used by an automated program transformation system to leverage different MPI operations that better match each system's capabilities. Our framework currently supports three automated transformations: coalescing of operations in MPI one-sided communications, transformation of blocking communications to nonblocking, which enables communication-computation overlap, and selection of the appropriate communication operators based on the cache-coherence support of the underlying platform. We use our annotation-based approach to optimize several benchmark kernels, and we demonstrate that the framework is effective at automatically improving performance portability for MPI applications.
Md. Ziaul Haque, Qing Yi, James Dinan, Pavan Balaji
ICPP2
2013 AUGEM: automatically generate high performance dense linear algebra kernels on x86 CPUs
abstract
Basic Liner algebra subprograms (BLAS) is a fundamental library in scientific computing. In this paper, we present a template-based optimization framework, AUGEM, which can automatically generate fully optimized assembly code for several dense linear algebra (DLA) kernels, such as GEMM, GEMV, AXPY and DOT, on varying multi-core CPUs without requiring any manual interference from developers. In particular, based on domain-specific knowledge about algorithms of the DLA kernels, we use a collection of parameterized code templates to formulate a number of commonly occurring instruction sequences within the optimized low-level C code of these DLA kernels. Then, our framework uses a specialized low-level C optimizer to identify instruction sequences that match the pre-defined code templates and thereby translates them into extremely efficient SSE/AVX instructions. The DLA kernels generated by our template-based approach surpass the implementations of Intel MKL and AMD ACML BLAS libraries, on both Intel Sandy Bridge and AMD Piledriver processors.
Xianyi Zhang, Yunquan Zhang, Qing Yi
SC4
2013 Layout-oblivious compiler optimization for matrix computations
abstract
Most scientific computations serve to apply mathematical operations to a set of preconceived data structures, e.g., matrices, vectors, and grids. In this article, we use a number of widely used matrix computations from the LINPACK library to demonstrate that complex internal organizations of data structures can severely degrade the effectiveness of compiler optimizations. We then present a data-layout-oblivious optimization methodology, where by isolating an abstract representation of the computations from complex implementation details of their data, we enable these computations to be much more accurately analyzed and optimized through varying state-of-the-art compiler technologies. We evaluated our approach on an Intel 8-core platform using two source-to-source compiler infrastructures, Pluto and EPOD. Our results show that while the efficiency of a computational kernel differs when using different data layouts, the alternative implementations typically benefit from a common set of optimizations on the operations. Therefore separately optimizing the operations and the data layout of a computation could dramatically enhance the effectiveness of compiler optimizations compared with the conventional approaches of using a unified representation.
Huimin Cui, Qing Yi, Jingling Xue, Xiaobing Feng 0002
ACM Trans. Archit. Code Optim.2
2012 Layout-oblivious optimization for matrix computations
abstract
Most scientific computations serve to apply mathematical operations to a set of preconceived data structures, e.g., matrices, vectors, and grids. In this paper, we use a number of widely used matrix computations from the LINPACK library to demonstrate that complex internal organizations of data structures can severely degrade the effectiveness of compilers optimizations. We then present a data layout oblivious optimization methodology, where by isolating an abstract representation of computations from complex implementation details of their data, we enable these computations to be much more accurately analyzed and optimized through varying state-of-the-art compiler technologies.
Huimin Cui, Qing Yi, Jingling Xue, Xiaobing Feng 0002
PACT2
2012 A Highly Parallel Reuse Distance Analysis Algorithm on GPUs
abstract
Reuse distance analysis is a runtime approach that has been widely used to accurately model the memory system behavior of applications. However, traditional reuse distance analysis algorithms use tree-based data structures and are hard to parallelize, missing the tremendous computing power of modern architectures such as the emerging GPUs. This paper presents a highly-parallel reuse distance analysis algorithm (HP-RDA) to speedup the process using the SPMD execution model of GPUs. In particular, we propose a hybrid data structure of hash table and local arrays to flatten the traditional tree representation of memory access traces. Further, we use a probabilistic model to correct any loss of precision from a straightforward parallelization of the original sequential algorithm. Our experimental results show that using an NVIDIA GPU, our algorithm achieves a factor of 20 speedup over the traditional sequential algorithm with less than 1% loss in precision.
Huimin Cui, Qing Yi, Jingling Xue, Lei Wang 0004, Xiaobing Feng 0002
IPDPS2
2012 POET: a scripting language for applying parameterized source-to-source program transformations
abstract
SUMMARY We present POET, a scripting language designed for applying advanced program transformations to code in arbitrary programming languages as well as building ad hoc translators between these languages. We have used POET to support a large number of compiler optimizations, including loop interchange, parallelization, blocking, fusion/fission, strength reduction, scalar replacement, SSE vectorization, among others, and to fully support the code generation of several domain‐specific languages, including automatic tester/timer generation, and automatically translating a finite‐state‐machine‐based behavior modeling language into C++/ Java code. This paper presents key design and implementation decisions of the POET language and show how to use various language features to significantly reduce the difficulty of supporting programmable compiler optimization for high performance computing and supporting ad hoc code generation for various domain‐specific languages. Copyright © 2011 John Wiley & Sons, Ltd.
Qing Yi
Softw. Pract. Exp.1
2011 Automated programmable control and parameterization of compiler optimizations
abstract
We present a framework which effectively combines programmable control by developers, advanced optimization by compilers, and flexible parameterization of optimizations to achieve portable high performance. We have extended ROSE, a C/C++/Fortran source-to-source optimizing compiler, to automatically analyze scientific applications and discover optimization opportunities. Instead of directly generating optimized code, our optimizer produces parameterized scripts in POET, an interpreted program transformation language, so that developers can freely modify the optimization decisions by the compiler and add their own domain-specific optimizations if necessary. The auto-generated POET scripts support extra optimizations beyond those available in the ROSE optimizer. Additionally, all the optimizations are parameterized at an extremely fine granularity, so the scripts can be ported together with their input code and automatically tuned for different architectures. Our results show that this approach is highly effective, and the code optimized by the auto-generated POET scripts can significantly outperform those optimized using the ROSE optimizer alone.
Qing Yi
CGO1
2011 Automated empirical tuning of scientific codes for performance and power consumption
abstract
Automatic empirical tuning of compiler optimizations has been widely used to achieve portable high performance for scientific applications. However, as power dissipation becomes increasingly important in modern architecture design, few have attempted to empirically tune optimization configurations to reduce the power consumption of applications. We provide an automated empirical tuning framework that can be configured to optimize for both performance and energy efficiency. In particular, we extensively parameterize the configuration of a large number of compiler optimizations, including loop parallelization, blocking, unroll-and-jam, array copying, scalar replacement, strength reduction, and loop unrolling. We then use hardware counters combined with elapsed time to estimate both the performance and the power consumption of differently optimized code to automatically discover desirable configurations for these optimizations. We use a power meter to verify our tuning results on two multi-core computers and show that our approach can effectively achieve a balanced performance and energy efficiency on modern CMP machines.
Faizur Rahman, Jichi Guo, Qing Yi
HiPEAC3
2011 Enhancing the Role of Inlining in Effective Interprocedural Parallelization
abstract
The emergence of multi-core architectures makes it essential for optimizing compilers to automatically extract parallelism for large scientific applications composed of many subroutines residing in different files. Inlining is a well-known technique which can be used to erase procedural boundaries and enable more aggressive loop parallelization. However, conventional inlining cannot be applied to external libraries where the source code is not available, and when overly applied, it can degrade the effectiveness of compiler optimizations due to excessive code complexity. This paper highlights some obstacles we encountered while applying conventional inlining combined with automatic loop parallelization using the Polaris optimizing compiler and presents a new approach, annotation-based inlining, to effectively overcome these obstacles. Our experimental results show that the annotation-based inlining approach can eliminate negative impact of conventional inlining while enhancing the effectiveness of interprocedural parallelization for a majority of applications from the PERFECT benchmark suite.
Jichi Guo, Mike Stiles, Qing Yi, Kleanthis Psarris
ICPP3
2011 Collective Specification and Verification of Behavior Models and Object-oriented Implementations
Qing Yi, Jianwei Niu 0001, Anitha R. Marneni
ICSOFT (2)1
2010 Exposing Tunable Parameters in Multi-threaded Numerical Code
Apan Qasem, Jichi Guo, Faizur Rahman, Qing Yi
NPC4
2007 POET: Parameterized Optimizations for Empirical Tuning
abstract
The excessive complexity of both machine architectures and applications have made it difficult for compilers to statically model and predict application behavior. This observation motivates the recent interest in performance tuning using empirical techniques. We present a new embedded scripting language, POET (parameterized optimization for empirical tuning), for parameterizing complex code transformations so that they can be empirically tuned. The POET language aims to significantly improve the generality, flexibility, and efficiency of existing empirical tuning systems. We have used the language to parameterize and to empirically tune three loop optimizations - interchange, blocking, and unrolling - for two linear algebra kernels. We show experimentally that the time required to tune these optimizations using POET, which does not require any program analysis, is significantly shorter than that when using a full compiler-based source-code optimizer which performs sophisticated program analysis and optimizations.
Qing Yi, Keith Seymour, Haihang You, Richard W. Vuduc, Daniel J. Quinlan
IPDPS1
2006 Annotating user-defined abstractions for optimization
abstract
Although conventional compilers implement a wide range of optimization techniques, they frequently miss opportunities to optimize the use of abstractions, largely because they are not designed to recognize and use the relevant semantic information about such abstractions. In this position paper, we propose a set of annotations to help communicate high-level semantic information about abstractions to the compiler, thereby enabling the large body of traditional compiler optimizations to be applied to the use of those abstractions. Our annotations explicitly describe properties of abstractions that are needed to guarantee the applicability and profitability of a broad variety of such optimizations, including memoization, reordering, data layout transformations, and inlining and specialization
Daniel J. Quinlan, Markus Schordan, Richard W. Vuduc, Qing Yi
IPDPS4
2004 Classification and Utilization of Abstractions for Optimization
Daniel J. Quinlan, Markus Schordan, Qing Yi, Andreas Sæbjørnsen
ISoLA3
2004 Transforming Complex Loop Nests for Locality
Qing Yi, Ken Kennedy, Vikram S. Adve
J. Supercomput.1
2002 Advanced optimization strategies in the Rice dHPF compiler
abstract
Abstract High‐Performance Fortran (HPF) was envisioned as a vehicle for modernizing legacy Fortran codes to achieve scalable parallel performance. To a large extent, today's commercially available HPF compilers have failed to deliver scalable parallel performance for a broad spectrum of applications because of insufficiently powerful compiler analysis and optimization. Substantial restructuring and hand‐optimization can be required to achieve acceptable performance with an HPF port of an existing Fortran application, even for regular data‐parallel applications. A key goal of the Rice dHPF compiler project has been to develop optimization techniques that enable a wide range of existing scientific applications to be ported easily to efficient HPF with minimal restructuring. This paper describes the challenges to effective parallelization presented by complex (but regular) data‐parallel applications, and then describes how the novel analysis and optimization technologies in the dHPF compiler address these challenges effectively, without major rewriting of the applications. We illustrate the techniques by describing their use for parallelizing the NAS SP and BT benchmarks. The dHPF compiler generates multipartitioned parallelizations of these codes that are approaching the scalability and efficiency of sophisticated hand‐coded parallelizations. Copyright © 2002 John Wiley & Sons, Ltd.
John M. Mellor-Crummey, Vikram S. Adve, Bradley Broom, Daniel G. Chavarría-Miranda, Robert J. Fowler, Guohua Jin, Ken Kennedy, Qing Yi
Concurr. Comput. Pract. Exp.8
2000 Transforming loops to recursion for multi-level memory hierarchies
abstract
Recently, there have been several experimental and theoretical results showing significant performance benefits of recursive algorithms on both multi-level memory hierarchies and on shared-memory systems. In particular, such algorithms have the data reuse characteristics of a blocked algorithm that is simultaneously blocked at many different levels. Most existing applications, however, are written using ordinary loops. We present a new compiler transformation that can be used to convert loop nests into recursive form automatically. We show that the algorithm is fast and effective, handling loop nests with arbitrary nesting and control flow. The transformation achieves substantial performance improvements for several linear algebra codes even on a current system with a two level cache hierarchy. As a side-effect of this work, we also develop an improved algorithm for transitive dependence analysis (a powerful technique used in the recursion transformation and other loop transformations)that is much faster than the best previously known algorithm in practice.
Qing Yi, Vikram S. Adve, Ken Kennedy
PLDI1
1998 High Performance Fortran Compilation Techniques for Parallelizing Scientific Codes
abstract
With current compilers for High Performance Fortran (HPF), substantial restructuring and hand- optimization may be required to obtain acceptable performance from an HPF port of an existing Fortran application. A key goal of the Rice dHPF compiler project is to develop optimization techniques that can provide consistently high performance for a broad spectrum of scientific applications with minimal restructuring of existing Fortran 77 or Fortran 90 applications. This paper presents four new optimization techniques we developed to support efficient parallelization of codes with minimal restructuring. These optimizations include computation partition selection for loop nests that use privatizable arrays, along with partial replication of boundary computations to reduce communication overhead; communication- sensitive loop distribution to eliminate inner-loop communications; interprocedural selection of computation partitions; and data availability analysis to eliminate redundant communications. We studied the effectiveness of the dHPF compiler, which incorporates these optimizations, in parallelizing serial versions of the NAS SP and BT application benchmarks. We present experimental results comparing the performance of hand-written MPI code for the benchmarks against code generated from HPF using the dHPF compiler and the Portland Group's pghpf compiler. Using the compilation techniques described in this paper we achieve performance within 15% of hand-written MPI code on 25 processors for BT and within 33% for SP. Furthermore, these results are obtained with HPF versions of the benchmarks that were created with minimal restructuring of the serial code (modifying only approximately 5% of the code).
Vikram S. Adve, Guohua Jin, John M. Mellor-Crummey, Qing Yi
SC4