Demo Data from VLDB 2026 / reviewers in the wild / expert
Guang R. Gao
dblp:g/GuangRGao · also Guang Gao 0001, Guang Rong Gao
· DBLP profile ↗
152ranked-venue papers
16as first author
4since 2021 · last 2023
0000-0002-5265-7528ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 119 · 14 first-author · 2 since 2021Software engineering, systems software and programming languages · 27 · 1 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 8Artificial intelligence and machine learning · 3Computer networks · 1Databases, data management, data science and information retrieval · 1 · 1 since 2021Graphics, computer vision, multimedia, augmented reality and games · 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.
| Computer architecture, parallel and distributed computing, and storage systems
30 papers |
Parallel and multicore computing · 26% Hardware accelerators and domain-specific architectures · 17% Processor architecture and microarchitecture · 12% | |
| Software engineering, system software, and programming languages
20 papers |
Compilers and program optimization · 93% Program analysis · 7% | |
| Interdisciplinary, comprehensive, and emerging computing
4 papers |
Bioinformatics and computational biology · 100% | |
| Artificial intelligence
1 paper |
Efficient and distributed learning · 100% |
Topics — the 30 heaviest of 94, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
GPUs and heterogeneous computing
GPU kernel optimization |
0.5 | 1 | 2021 | E.T.: re-thinking self-attention for transformer models on GPUs · SC 2021 |
Hardware accelerators and domain-specific architectures
machine learning accelerator |
0.5 | 1 | 2021 | E.T.: re-thinking self-attention for transformer models on GPUs · SC 2021 |
Hardware accelerators and domain-specific architectures › machine learning accelerator
transformer accelerator |
0.5 | 1 | 2021 | E.T.: re-thinking self-attention for transformer models on GPUs · SC 2021 |
Compilers and program optimization › instruction scheduling
software pipelining |
0.4 | 10 | 2012 | Software Pipelining for Stream Programs on Resource Constrained Multicore Architectures · IEEE Trans. Parallel Distributed Syst. 2012 Register allocation for software pipelined multidimensional loops · ACM Trans. Program. Lang. Syst. 2008 Single-dimension software pipelining for multidimensional loops · ACM Trans. Archit. Code Optim. 2007 |
Parallel and multicore computing
parallel programming runtimes |
0.4 | 2 | 2017 | Generating Fine-Grain Multithreaded Applications Using a Multigrain Approach · ACM Trans. Archit. Code Optim. 2017 Toward high-throughput algorithms on many-core architectures · ACM Trans. Archit. Code Optim. 2012 |
Parallel and multicore computing
parallel programming models |
0.4 | 3 | 2017 | Generating Fine-Grain Multithreaded Applications Using a Multigrain Approach · ACM Trans. Archit. Code Optim. 2017 Improving Performance of Dynamic Programming via Parallelism and Locality on Multicore Architectures · IEEE Trans. Parallel Distributed Syst. 2009 Landing CG on EARTH: A Case Study of Fine-Grained Multithreading on an Evolutionary Path · SC 2000 |
Processor architecture and microarchitecture › multithreading
fine-grain multithreading |
0.3 | 2 | 2017 | Generating Fine-Grain Multithreaded Applications Using a Multigrain Approach · ACM Trans. Archit. Code Optim. 2017 Landing CG on EARTH: A Case Study of Fine-Grained Multithreading on an Evolutionary Path · SC 2000 |
Hardware reliability and fault tolerance
error recovery |
0.3 | 1 | 2017 | Leveraging Compiler Optimizations to Reduce Runtime Fault Recovery Overhead · DAC 2017 |
Emerging computing paradigms
event-driven computing |
0.3 | 1 | 2017 | Generating Fine-Grain Multithreaded Applications Using a Multigrain Approach · ACM Trans. Archit. Code Optim. 2017 |
Hardware reliability and fault tolerance › error recovery
runtime fault recovery |
0.3 | 1 | 2017 | Leveraging Compiler Optimizations to Reduce Runtime Fault Recovery Overhead · DAC 2017 |
Compilers and program optimization
register allocation |
0.2 | 8 | 2008 | Register allocation for software pipelined multidimensional loops · ACM Trans. Program. Lang. Syst. 2008 Register allocation for software pipelined multi-dimensional loops · PLDI 2005 Minimum Register Instruction Sequencing to Reduce Register Spills in Out-of-Order Issue Superscalar Architectures · IEEE Trans. Computers 2003 |
Processor architecture and microarchitecture
many-core architecture |
0.2 | 3 | 2011 | Experience on optimizing irregular computation for memory hierarchy in manycore architecture · PPoPP 2008 Synchronization state buffer: supporting efficient fine-grain synchronization on many-core architectures · ISCA 2007 DEEP: an iterative fpga-based many-core emulation system for chip verification and architecture research · FPGA 2011 |
Compilers and program optimization
instruction scheduling |
0.2 | 6 | 2008 | Register allocation for software pipelined multidimensional loops · ACM Trans. Program. Lang. Syst. 2008 Minimum Register Instruction Sequencing to Reduce Register Spills in Out-of-Order Issue Superscalar Architectures · IEEE Trans. Computers 2003 Software Pipelining Showdown: Optimal vs. Heuristic Methods in a Production Compiler · PLDI 1996 |
Machine learning › Efficient and distributed learning
model compression |
0.1 | 1 | 2021 | E.T.: re-thinking self-attention for transformer models on GPUs · SC 2021 |
Machine learning › Efficient and distributed learning › model compression
pruning |
0.1 | 1 | 2021 | E.T.: re-thinking self-attention for transformer models on GPUs · SC 2021 |
Electronic design automation › high-level synthesis › scheduling
resource-constrained scheduling |
0.1 | 2 | 2012 | Software Pipelining for Stream Programs on Resource Constrained Multicore Architectures · IEEE Trans. Parallel Distributed Syst. 2012 Minimizing register requirements under resource-constrained rate-optimal software pipelining · MICRO 1994 |
Parallel and multicore computing › parallel algorithms › shared-memory parallel algorithms
many-core algorithms |
0.1 | 1 | 2012 | Toward high-throughput algorithms on many-core architectures · ACM Trans. Archit. Code Optim. 2012 |
Distributed systems
task management |
0.1 | 1 | 2012 | Toward high-throughput algorithms on many-core architectures · ACM Trans. Archit. Code Optim. 2012 |
Reconfigurable computing and FPGAs
FPGA-based emulation |
0.1 | 1 | 2011 | DEEP: an iterative fpga-based many-core emulation system for chip verification and architecture research · FPGA 2011 |
Electronic design automation › hardware verification and test › functional verification › system-level verification
hardware/software co-verification |
0.1 | 1 | 2011 | DEEP: an iterative fpga-based many-core emulation system for chip verification and architecture research · FPGA 2011 |
Electronic design automation › hardware verification and test
hardware verification |
0.1 | 1 | 2011 | DEEP: an iterative fpga-based many-core emulation system for chip verification and architecture research · FPGA 2011 |
Parallel and multicore computing
locality optimization |
0.1 | 1 | 2009 | Improving Performance of Dynamic Programming via Parallelism and Locality on Multicore Architectures · IEEE Trans. Parallel Distributed Syst. 2009 |
Parallel and multicore computing
multicore programming |
0.1 | 1 | 2009 | Improving Performance of Dynamic Programming via Parallelism and Locality on Multicore Architectures · IEEE Trans. Parallel Distributed Syst. 2009 |
Parallel and multicore computing › parallel algorithms › dynamic programming
parallel dynamic programming |
0.1 | 1 | 2009 | Improving Performance of Dynamic Programming via Parallelism and Locality on Multicore Architectures · IEEE Trans. Parallel Distributed Syst. 2009 |
Compilers and program optimization › instruction scheduling › software pipelining
modulo scheduling |
0.1 | 3 | 2007 | Single-dimension software pipelining for multidimensional loops · ACM Trans. Archit. Code Optim. 2007 Software Pipelining Showdown: Optimal vs. Heuristic Methods in a Production Compiler · PLDI 1996 A Novel Framework of Register Allocation for Software Pipelining · POPL 1993 |
Bioinformatics and computational biology
sequence alignment |
0.1 | 2 | 2005 | Quasi-consensus-based comparison of profile hidden Markov models for protein sequences · Bioinform. 2005 CASA: a server for the critical assessment of protein sequence alignment accuracy · Bioinform. 2002 |
High-performance computing
scientific computing |
0.1 | 1 | 2017 | Generating Fine-Grain Multithreaded Applications Using a Multigrain Approach · ACM Trans. Archit. Code Optim. 2017 |
Parallel and multicore computing › parallel algorithms
irregular algorithms |
0.1 | 1 | 2008 | Experience on optimizing irregular computation for memory hierarchy in manycore architecture · PPoPP 2008 |
Memory systems › memory hierarchy
memory hierarchy optimization |
0.1 | 1 | 2008 | Experience on optimizing irregular computation for memory hierarchy in manycore architecture · PPoPP 2008 |
Compilers and program optimization › loop transformation
loop scheduling |
0.1 | 1 | 2007 | Single-dimension software pipelining for multidimensional loops · ACM Trans. Archit. Code Optim. 2007 |
Methods — techniques the papers use, named apart from their topics
sequence length-aware optimization · 1.0operation reordering · 1.0attention-aware pruning · 1.0LLVM · 0.6integer linear programming · 0.4brook extension · 0.3multigrain approach · 0.3gem5 · 0.3GEM5 · 0.3queueing theory · 0.1bin-packing · 0.1iterative emulation methodology · 0.1vector lifetime analysis · 0.1lock assignment · 0.1lock allocation · 0.1hyperplane scheduling · 0.1data dependence graph · 0.1aho-corasick algorithm · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | Implementation of Dataflow Software Pipelining for Codelet Model
Siddhisanket Raskar, José Monsalve Diaz, Thomas Applencourt, Kalyan Kumaran, Guang R. Gao |
ICPE | 5 |
| 2022 | Extending an asynchronous runtime system for high throughput applications: A case study
Joshua Suetterlein, Joseph B. Manzano, Andrés Márquez 0001, Guang R. Gao |
J. Parallel Distributed Comput. | 4 |
| 2021 | E.T.: re-thinking self-attention for transformer models on GPUsabstractTransformer-based deep learning models have become a ubiquitous vehicle to drive a variety of Natural Language Processing (NLP) related tasks beyond their accuracy ceiling. However, these models also suffer from two pronounced challenges, that is, gigantic model size and prolonged turnaround time. To this end, we introduce ET. that rE-thinks self-attention computation for Transformer models on GPUs with the following contributions: First, we introduce a novel self-attention architecture, which encompasses two tailored self-attention operators with corresponding sequence length-aware optimizations, and operation reordering optimizations. Second, we present an attention-aware pruning design which judiciously uses various pruning algorithms to reduce more computations hence achieves significantly shorter turnaround time. For the pruning algorithms, we not only revamp the existing pruning algorithms, but also tailor new ones for transformer models. Taken together, we evaluate E.T. across a variety of benchmarks for Transformer, BERTBASE and DistilBERT, where E.T. presents superior performance over the mainstream projects, including the popular Nvidia Enterprise solutions, i.e., TensorRT and FasterTransformer. Shiyang Chen 0004, Shaoyi Huang, Santosh Pandey 0001, Guang R. Gao, Long Zheng 0001, Caiwen Ding, Hang Liu 0001 |
SC | 5 |
| 2021 | swFLOW: A large-scale distributed framework for deep learning on Sunway TaihuLight supercomputer
Mingfan Li, Junshi Chen 0003, José Monsalve Diaz, Rongfen Lin, Guang R. Gao, Hong An |
Inf. Sci. | 8 |
| 2020 | On the Marriage of Asynchronous Many Task Runtimes and Big Data: A GlanceabstractThe rise of the accelerator-based architectures and reconfigurable computing have showcased the weakness of software stack toolchains that still maintain a static view of the hardware instead of relying on a symbiotic relationship between static (e.g., compilers) and dynamic tools (e.g., runtimes). In the past decades, this need has given rise to adaptive runtimes with increasingly finer computational tasks. These finer tasks help to take advantage of the hardware by switching out when a long latency operation is encountered (because of the deeper memory hierarchies and new memory technologies that might target streaming instead of random access), thus trading off idle time for unrelated work. Examples of these finer task runtimes are Asynchronous Many Task (AMT) runtimes, in which highly efficient computational graphs run on a variety of hardware. Due to its inherent latency tolerant characteristics, latency-sensitive applications, such as Graph Analytics and Big Data can effectively use these runtimes. This paper aims to present an example of how the careful design of an AMT can exploit the hardware substrate when faced with high latency applications such as the ones given in the Big Data domain. Moreover, with its introspection and adaptive capabilities, we aim to show the power of these runtimes when facing the changing requirements of application workloads. We use the Performance Open Community Runtime (P-OCR) as our vehicle to demonstrate the concepts presented here. Joshua Suetterlein, Joseph B. Manzano, Andrés Márquez 0001, Guang R. Gao |
HiPC | 4 |
| 2020 | PDAWL: Profile-Based Iterative Dynamic Adaptive WorkLoad Balance on Heterogeneous Architectures
Tongsheng Geng, Marcos Amaris, Stéphane Zuckerman, Alfredo Goldman, Guang R. Gao, Jean-Luc Gaudiot |
JSSPP | 5 |
| 2019 | Position Paper: Extending Codelet Model for Dataflow Software Pipelining using Software-Hardware Co-DesignabstractTrends in processor and system architecture, driven by power and complexity, point super-computing landscape toward very high and heterogeneous core count designs. As the number of cores inevitably increase traditional ways of performing large scale computations will also need to evolve from legacy models like OpenMP & MPI. However, such models are very much wedded to a control-flow vision of parallel programs, making it difficult to express asynchrony in programs. To address these challenges, codelet model was developed which is fine-grained, event-driven asynchronous program execution model. In-spite of its initial design goals, the Codelet model is rife with opportunities for further improvements to provide high-performance for both data and control regular applications. The major inspiration behind this work is to leverage the decades of research done to exploit instruction level parallelism (ILP) for the machine instructions inside codelet while build upon the dataflow software pipelining principals at codelet graph level to further enhance performance. In this paper, we propose hardware assisted extensions to the original codelet program execution model in order to implement efficient dataflow software pipelining and extend capabilities of the codelet model. This hardware-software co-design focuses on efficient implementation of data FIFO buffers leveraging proposed optimizations like - FIFO ring buffers and multiple-head FIFO buffers and single owner FIFO buffers to further exploit advantages of dataflow software pipelining. The wide range of scientific, machine learning and specially streaming applications should be able to take advantage of techniques proposed in this paper. Identifying these kernels and bench-marking them are the next anticipated steps for us. Siddhisanket Raskar, Thomas Applencourt, Kalyan Kumaran, Guang R. Gao |
COMPSAC (2) | 4 |
| 2019 | Editorial for the special issue on innovations in supercomputing techniques
Guangming Tan, Guang R. Gao |
CCF Trans. High Perform. Comput. | 2 |
| 2017 | Leveraging Compiler Optimizations to Reduce Runtime Fault Recovery OverheadabstractSmaller feature size, lower supply voltage, and faster clock rates have made modern computer systems more susceptible to faults. Although previous fault tolerance techniques usually target a relatively low fault rate and consider error recovery less critical, with the advent of higher fault rates, recovery overhead is no longer negligible. In this paper, we propose a scheme that leverages and revises a set of compiler optimizations to design, for each application hotspot, a smart recovery plan that identifies the minimal set of instructions to be re-executed in different fault scenarios. Such fault scenario and recovery plan information is efficiently delivered to the processor for runtime fault recovery. The proposed optimizations are implemented in LLVM and GEM5. The results show that the proposed scheme can significantly reduce runtime recovery overhead by 72%. Fateme S. Hosseini, Pouya Fotouhi, Chengmo Yang, Guang R. Gao |
DAC | 4 |
| 2017 | Leveraging access port positions to accelerate page table walk in DWM-based main memoryabstractDomain Wall Memory (DWM) with ultra-high density and comparable read/write latency to DRAM is an attractive replacement for CMOS-based devices. Unlike DRAM, DWM has non-uniform data access latency that is proportional to the number of shift operations. While previous works have demonstrated the feasibility of using DWM as main memory and have proposed different ways to alleviate the impact of shift operations, none of them have addressed the performance-critical metadata accesses, in particular page table accesses. To bridge this gap, this paper aims at accelerating page table walk in DWM-based main memory from two innovative aspects. First of all, we propose a new page table layout and leverage the positions of access ports in DWM to differentiate the state of page table entries. In addition, we propose a technique to pre-align the access ports to the positions to be accessed in the near future, thus hiding shift latency to the maximum extent. Since both address translation and context switching are affected by page table access latency, the proposed technique can effectively improve system performance and user experience. Hoda Aghaei Khouzani, Pouya Fotouhi, Chengmo Yang, Guang R. Gao |
DATE | 4 |
| 2017 | Multigrain Parallelism: Bridging Coarse-Grain Parallel Programs and Fine-Grain Event-Driven MultithreadingabstractThe overwhelming wealth of parallelism exposed by Extreme-scale computing is rekindling the interest for finegrain multithreading, particularly at the intranode level. Indeed, popular parallel programming models, such as OpenMP, are integrating fine-grain tasking in their newest standards. Yet, classical coarse-grain constructs are still largely preferred, as they are considered simpler to express parallelism. In this paper, we present a Multigrain Parallel Programming environment that allows programmers to use these well-known coarse-grain constructs to generate a fine-grain multithreaded application to be run on top of a fine-grain event-driven program execution model. Experimental results with four scientific benchmarks (Graph500, NAS Data Cube, NWChem-SCF, and ExMatEx's CoMD) show that fine-grain applications generated by and run on our environment are competitive and even outperform their OpenMP counterparts, especially for data-intensive workloads with irregular and dynamic parallelism, reaching speedups as high as 2.6x for Graph500 and 50x for NAS Data Cube. Jaime Arteaga, Stéphane Zuckerman, Guang R. Gao |
IPDPS | 3 |
| 2017 | Parallel Turing Machine, a Proposal
Youhui Zhang, Guang R. Gao |
J. Comput. Sci. Technol. | 4 |
| 2017 | Generating Fine-Grain Multithreaded Applications Using a Multigrain ApproachabstractThe recent evolution in hardware landscape, aimed at producing high-performance computing systems capable of reaching extreme-scale performance, has reignited the interest in fine-grain multithreading, particularly at the intranode level. Indeed, popular parallel programming environments, such as OpenMP, which features a simple interface for the parallelization of programs, are now incorporating fine-grain constructs. However, since coarse-grain directives are still heavily used, the OpenMP runtime is forced to support both coarse- and fine-grain models of execution, potentially reducing the advantages obtained when executing an application in a fully fine-grain environment. To evaluate the type of applications that benefit from executing in a unified fine-grain program execution model, this article presents amultigrain parallel programming environmentfor the generation of fine-grain multithreaded applications from programs featuring OpenMP’s API, allowing OpenMP programs to be run on top of a fine-grain event-driven program execution model. Experimental results with five scientific benchmarks show that fine-grain applications, generated by and run on our environment with two runtimes implementing a fine-grain event-driven program execution model, are competitive and can outperform their OpenMP counterparts, especially for data-intensive workloads with irregular and dynamic parallelism, reaching speedups as high as 2.6× for Graph500 and 51× for NAS Data Cube. Jaime Arteaga, Stéphane Zuckerman, Guang R. Gao |
ACM Trans. Archit. Code Optim. | 3 |
| 2016 | Extending the Roofline Model for Asynchronous Many-Task RuntimesabstractA common practice for application developers is to experimentally determine the granularity of a task after a code has been parallelized based on the observed overhead of a runtime. Instead, we propose a new methodology based on an extended Roofline model to provide practical upper bounds on the throughput performance of an application. First, we extend the Roofline model to support not only latency hiding analysis, but also a multidimensional amortized analysis. By combining this new methodology with a serial application and an Asynchronous Many Task (AMT) runtime implementation, we can predict the worst case runtime overhead attribution of individual runtime features prior to the development of parallel code. Joshua Suetterlein, Joshua Landwehr, Andrés Márquez 0001, Joseph B. Manzano, Guang R. Gao |
CLUSTER | 5 |
| 2016 | Toward a Parallel Turing Machine Model
Guang R. Gao |
NPC | 3 |
| 2015 | Locality aware concurrent start for stencil applicationsabstractStencil computations are at the heart of many physical simulations used in scientific codes. Thus, there exists a plethora of optimization efforts for this family of computations. Among these techniques, tiling techniques that allow concurrent start have proven to be very efficient in providing better performance for these critical kernels. Nevertheless, with many core designs being the norm, these optimization techniques might not be able to fully exploit locality (both spatial and temporal) on multiple levels of the memory hierarchy without compromising parallelism. It is no longer true that the machine can be seen as a homogeneous collection of nodes with caches, main memory and an interconnect network. New architectural designs exhibit complex grouping of nodes, cores, threads, caches and memory connected by an ever evolving network-on-chip design. These new designs may benefit greatly from carefully crafted schedules and groupings that encourage parallel actors (i.e. threads, cores or nodes) to be aware of the computational history of other actors in close proximity. In this paper, we provide an efficient tiling technique that allows hierarchical concurrent start for memory hierarchy aware tile groups. Each execution schedule and tile shape exploit the available parallelism, load balance and locality present in the given applications. We demonstrate our technique on the Intel Xeon Phi architecture with selected and representative stencil kernels. We show improvement ranging from 5.58% to 31.17% over existing state-of-the-art techniques. Sunil Shrestha, Guang R. Gao, Joseph B. Manzano, Andrés Márquez 0001, John Feo |
CGO | 2 |
| 2014 | ACDT: Architected Composite Data Types trading-in unfettered data access for improved executionabstractWith Exascale performance and its challenges in mind, one ubiquitous concern among architects is energy efficiency. Petascale systems projected to Exascale systems are unsustainable at current power consumption rates. One major contributor to system-wide power consumption is the number of memory operations leading to data movement and management techniques applied by the runtime system. To address this problem, we present the concept of the Architected Composite Data Types (ACDT) framework. The framework is made aware of data composites, assigning them a specific layout, transformations and operators. Data manipulation overhead is amortized over a larger number of elements and program performance and power efficiency can be significantly improved. We developed the fundamentals of an ACDT framework on a massively multithreaded adaptive runtime system geared towards Exascale clusters. Showcasing the capability of ACDT, we exercised the framework with two representative processing kernels - Matrix Vector Multiply and the Cholesky Decomposition - applied to sparse matrices. As transformation modules, we applied optimized compress/decompress engines and configured invariant operators for maximum energy/performance efficiency. Additionally, we explored two different approaches based on transformation opaqueness in relation to the application. Under the first approach, the application is agnostic to compression and decompression activity. Such approach entails minimal changes to the original application code, but leaves out potential application-specific optimizations. The second approach exposes the decompression process to the application, hereby exposing optimization opportunities that can only be exploited with application knowledge. The experimental results show that the two approaches have their strengths in HW and SW respectively, where the SW approach can yield performance and power improvements that are an order of magnitude better than ACDT-oblivious, hand-optimized implementations. We consider the ACDT runtime framework an important component of compute nodes that will lead towards power efficient Exascale clusters. Andrés Márquez 0001, Joseph B. Manzano, Shuaiwen Song, Benoît Meister, Sunil Shrestha, Thomas St. John, Guang R. Gao |
ICPADS | 7 |
| 2013 | The TERAFLUX Project: Exploiting the DataFlow Paradigm in Next Generation TeradevicesabstractThanks to the improvements in semiconductor technologies, extreme-scale systems such as teradevices (i.e., composed by 1000 billion of transistors) will enable systems with 1000+ general purpose cores per chip, probably by 2020. Three major challenges have been identified: programmability, manageable architecture design, and reliability. TERAFLUX is a Future and Emerging Technology (FET) large-scale project funded by the European Union, which addresses such challenges at once by leveraging the dataflow principles. This paper describes the project and provides an overview of the research carried out by the TERAFLUX consortium. Marco Solinas, Rosa M. Badia, François Bodin, Albert Cohen 0001, Paraskevas Evripidou, Paolo Faraboschi, Bernhard Fechner, Guang R. Gao, Arne Garbade, Sylvain Girbal, Daniel Goodman 0001, Behram Khan, Souad Koliai, Feng Li 0016, Mikel Luján, Laurent Morin, Avi Mendelson, Nacho Navarro, Antoniu Pop, Pedro Trancoso, Theo Ungerer, Mateo Valero, Sebastian Weis, Ian Watson, Stéphane Zuckerman, Roberto Giorgi |
DSD | 8 |
| 2013 | An Implementation of the Codelet Model
Joshua Suetterlein, Stéphane Zuckerman, Guang R. Gao |
Euro-Par | 3 |
| 2013 | A dynamic schema to increase performance in many-core architectures through percolation operationsabstractOptimization of parallel applications under new many-core architectures is challenging even for regular applications. Successful strategies inherited from previous generations of parallel or serial architectures just return incremental gains in performance and further optimization and tuning are required. We argue that conservative static optimizations are not the best fit for modern many-core architectures. The limited advantages of static techniques come from the new scenarios present in many-cores: Plenty of thread units sharing several resources under different coordination mechanisms. Elkin Garcia, Daniel A. Orozco, Rishi Khan, Ioannis E. Venetis, Kelly Livingston, Guang R. Gao |
HiPC | 6 |
| 2013 | StreamTMC: Stream compilation for tiled multi-core architectures
Haitao Wei, Mingkang Qin, Junqing Yu, Dongrui Fan, Guang R. Gao |
J. Parallel Distributed Comput. | 6 |
| 2012 | Demystifying Performance Predictions of Distributed FFT3D Implementations
Daniel A. Orozco, Elkin Garcia, Robert S. Pavel, Orlando Ayala, Lian-Ping Wang, Guang R. Gao |
NPC | 6 |
| 2012 | Toward high-throughput algorithms on many-core architecturesabstractAdvanced many-core CPU chips already have a few hundreds of processing cores (e.g., 160 cores in an IBM Cyclops-64 chip) and more and more processing cores become available as computer architecture progresses. The underlying runtime systems of such architectures need to efficiently serve hundreds of processors at the same time, requiring all basic data structures within the runtime to maintain unprecedented throughput. In this paper, we analyze the throughput requirements that must be met by algorithms in runtime systems to be able to handle hundreds of simultaneous operations in real time. We reach a surprising conclusion: Many traditional algorithm techniques are poorly suited for highly parallel computing environments because of their low throughput. We reach the conclusion that the intrinsic throughput of a parallel program depends on both its algorithm and the processor architecture where the program runs. We provide theory to quantify the intrinsic throughput of algorithms, and we provide a few examples, where we describe the intrinsic throughput of existing, common algorithms. Then, we go on to explain how to follow a throughput-oriented approach to develop algorithms that have very high intrinsic throughput in many core architectures. We compare our throughput-oriented algorithms with other well known algorithms that provide the same functionality and we show that a throughput-oriented design produces algorithms with equal or faster performance in highly concurrent environments. We provide both theoretical and experimental evidence showing that our algorithms are excellent choices over other state of the art algorithms. The major contributions of this paper are (1) motivating examples that show the importance of throughput in concurrent algorithms; (2) a mathematical framework that uses queueing theory to describe the intrinsic throughput of algorithms; (3) two highly concurrent algorithms with very high intrinsic throughput that are useful for task management in runtime systems; and (4) extensive experimental and theoretical results that show that for highly parallel systems, our proposed algorithms allow greater or at least equal scalability and performance than other well-known similar state-of-the-art algorithms. Daniel A. Orozco, Elkin Garcia, Rishi Khan, Kelly Livingston, Guang R. Gao |
ACM Trans. Archit. Code Optim. | 5 |
| 2012 | Software Pipelining for Stream Programs on Resource Constrained Multicore ArchitecturesabstractStream programming model has been productively applied to a number of important application domains. Software pipelining is an important code scheduling technique for stream programs. However, the multicore evolution has presented a new dimension of challenges: that is how to orchestrate the best software pipelining schedule in the face of resource constrained architectures (e.g., number of cores, available memory, and bandwidth)? In this paper, we proposed a new solution methodology to address the problem above. Our main contributions include the following. A unified Integer Linear Programming (ILP) formulation has been proposed that combines the requirement of both rate-optimal software pipelining and the minimization of intercore communication overhead. Next, an extended formulation has been proposed to formulate the schedule under memory size constrained systems. It orchestrates the rate-optimal software pipelining execution for stream programs with strict memory, processor cores, and communication constraints. A solution testbed has been implemented for the proposed problem formulations. This has been realized by extending the Brook programming environment with our software pipelining support-named DFBrook. An experimental study has been conducted to verify the effectiveness of the proposed solutions. Haitao Wei, Junqing Yu, Huafei Yu, Mingkang Qin, Guang R. Gao |
IEEE Trans. Parallel Distributed Syst. | 5 |
| 2011 | Exploring Fine-Grained Task-Based Execution on Multi-GPU SystemsabstractUsing multi-GPU systems, including GPU clusters, is gaining popularity in scientific computing. However, when using multiple GPUs concurrently, the conventional data parallel GPU programming paradigms, e.g., CUDA, cannot satisfactorily address certain issues, such as load balancing, GPU resource utilization, overlapping fine grained computation with communication, etc. In this paper, we present a fine-grained task-based execution framework for multi-GPU systems. By scheduling finer-grained tasks than what is supported in the conventional CUDA programming method among multiple GPUs, and allowing concurrent task execution on a single GPU, our framework provides means for solving the above issues and efficiently utilizing multi-GPU systems. Experiments with a molecular dynamics application show that, for nonuniform distributed workload, the solutions based on our framework achieve good load balance, and considerable performance improvement over other solutions based on the standard CUDA programming methodologies. Long Chen 0020, Oreste Villa, Guang R. Gao |
CLUSTER | 3 |
| 2011 | Hardware and Software Tradeoffs for Task Synchronization on Manycore Architectures
Yonghong Yan 0001, Sanjay Chatterjee, Daniel A. Orozco, Elkin Garcia, Zoran Budimlic, Jun Shirako, Robert S. Pavel, Guang R. Gao, Vivek Sarkar |
Euro-Par (2) | 8 |
| 2011 | DEEP: an iterative fpga-based many-core emulation system for chip verification and architecture researchabstractThis paper introduces the Delaware Enhanced Emulation Platform (DEEP) - a FPGA-based emulation system for hardware/software co-verification of many-core chip architectures. This platform exhibits the following three characteristics: fast compilation of logic designs, debugging support, and affordability. It is based on a novel iterative emulation methodology for hardware design and verification. Juergen Ributzka, Yuhei Hayashi, Guang R. Gao |
FPGA | 4 |
| 2011 | Source Code Partitioning in Program OptimizationabstractProgram analysis and program optimization seek to improve program performance. There are optimization techniques which are applied to various scopes such as a source file, function or basic block. Inter-procedural program optimization techniques have the scope of source file and analyze the interaction and relationship between different program functions. The techniques analyze the entire translation unit (typically a source file) and optimize the whole translation unit globally instead of just optimizing inside a function. Analyzing and optimizing an entire translation unit increases compilation time drastically because many factors need to be considered during analysis and optimization. The translation unit size can be quite large, containing many functions. Another issue is that functions in different translation units can be more closely related to each other than to the functions within their translation unit. The main goal of this research is grouping or partitioning of closely related program functions into the same translation unit. Our method profiles an application, determines relationship information between program functions and groups closely related functions together. The source code partitioner method improves the processing time of inter-procedural optimization techniques by applying it to a subset of program functions. Partitioning of program functions by analyzing profiling output shows dramatic decrease in compilation time of programs. Our results show we can improve the compiling time in all tested real world benchmarks. Murat Bolat, Kirk Kelsey, Xiaoming Li 0010, Guang R. Gao |
ICPADS | 4 |
| 2011 | The elephant and the mice: the role of non-strict fine-grain synchronization for modern many-core architecturesabstractThe Cray XMT architecture has incited curiosity among computer architect and system software designers for its architecture support of fine-grain in-memory synchronization. Although such discussion go back thirty years, there is a lack of practical experimental platforms that can evaluate major technological trends, such as fine-grain in-memory synchronization. The need for these platforms becomes apparent when dealing with new massive many-core designs and applications. Juergen Ributzka, Yuhei Hayashi, Joseph B. Manzano, Guang R. Gao |
ICS | 4 |
| 2011 | Analysis and performance results of computing betweenness centrality on IBM Cyclops64
Guangming Tan, Vugranam C. Sreedhar, Guang R. Gao |
J. Supercomput. | 3 |
| 2010 | Minimizing communication in rate-optimal software pipelining for stream programsabstractStream programming model has been productively applied to a number of important applications domains. Software pipelining is an important code scheduling technique for stream programs. However, the multi-/many-core evolution has presented a new dimension of challenges: that is while searching a best software pipelining schedule how to ensure the communications between processing cores are also minimized? In this paper, we proposed a new solution methodology to address the above problem. Our main contributions include the following. A unified formulation has been proposed that combines the requirement of both rate-optimal software pipelining and the minimization of inter-core communication overhead. This formulation has been developed based on a synchronized dataflow graph model, and is expressed as an integer linear programming problem. A solution testbed has been implemented for the proposed problem formulation on the IBM Cell architecture. This has been realized by extending the Brook stream programming environment with our software pipelining support -- named DFBrook. An experimental study has been conducted to verify the effectiveness of the proposed solution. And a comparison of other scheduling methods has demon-strated the performance superiority of our proposed method. Haitao Wei, Junqing Yu, Huafei Yu, Guang R. Gao |
CGO | 4 |
| 2010 | A Study of a Software Cache Implementation of the OpenMP Memory Model for Multicore and Manycore Architectures
Chen Chen 0067, Joseph B. Manzano, Ge Gan, Guang R. Gao, Vivek Sarkar |
Euro-Par (2) | 4 |
| 2010 | Optimized Dense Matrix Multiplication on a Many-Core Architecture
Elkin Garcia, Ioannis E. Venetis, Rishi Khan, Guang R. Gao |
Euro-Par (2) | 4 |
| 2010 | Dynamic load balancing on single- and multi-GPU systemsabstractThe computational power provided by many-core graphics processing units (GPUs) has been exploited in many applications. The programming techniques currently employed on these GPUs are not sufficient to address problems exhibiting irregular, and unbalanced workload. The problem is exacerbated when trying to effectively exploit multiple GPUs concurrently, which are commonly available in many modern systems. In this paper, we propose a task-based dynamic load-balancing solution for single-and multi-GPU systems. The solution allows load balancing at a finer granularity than what is supported in current GPU programming APIs, such as NVIDIA's CUDA. We evaluate our approach using both micro-benchmarks and a molecular dynamics application that exhibits significant load imbalance. Experimental results with a single-GPU configuration show that our fine-grained task solution can utilize the hardware more efficiently than the CUDA scheduler for unbalanced workload. On multi-GPU systems, our solution achieves near-linear speedup, load balance, and significant performance improvement over techniques based on standard CUDA APIs. Long Chen 0020, Oreste Villa, Sriram Krishnamoorthy, Guang R. Gao |
IPDPS | 4 |
| 2009 | Tile Percolation: An OpenMP Tile Aware Parallelization Technique for the Cyclops-64 Multicore Processor
Ge Gan, Joseph B. Manzano, Guang R. Gao |
Euro-Par | 4 |
| 2009 | Mapping the FDTD Application to Many-Core Chip ArchitecturesabstractThis paper reports a study of mapping the Finite Difference Time Domain (FDTD) application to the IBM Cyclops-64 (C64) many-core chip architecture [1]. C64 is chosen for this study as it represents the current trend in computer architecture to develop a class of many-core architectures with distinct features e.g. software manageable on-chip memory hierarchy (vs. a hardware-managed data cache), high on-chip bandwidth, fine grain multithreading and synchronization, among others. Major results of our study include: 1. A good mapping of FDTD can effectively exploit the on-chip parallelism of C64-like architectures and show good performance and scalability. 2. Such performance improvement is derived by employing a number of code optimization techniques such as time skewing and split tiling that judiciously exploit the architecture features described in (1). 3. High performance requires maximum reuse of on-chip memory, which is obtained by tiling with non conventional tile shapes. 4. Such code optimization techniques we used in (2) and tiling such as the one used in (3) should be implementable within a reasonable compilation framework, opening a new set of possibilities for compiler optimizations. Daniel A. Orozco, Guang R. Gao |
ICPP | 2 |
| 2009 | Iterative layer-based raytracing on CUDAabstractA raytracer consists in an application capable of tracing rays from a point into a scene in order to determine the closest sphere intersection along the ray's direction. Alejandro Segovia, Xiaoming Li 0010, Guang R. Gao |
IPCCC | 3 |
| 2009 | Improving Performance of Dynamic Programming via Parallelism and Locality on Multicore ArchitecturesabstractDynamic programming (DP) is a popular technique which is used to solve combinatorial search and optimization problems. This paper focuses on one type of DP, which is called nonserial polyadic dynamic programming (NPDP). Owing to the nonuniform data dependencies of NPDP, it is difficult to exploit either parallelism or locality. Worse still, the emerging multi/many-core architectures with small on-chip memory make these issues more challenging. In this paper, we address the challenges of exploiting the fine grain parallelism and locality of NPDP on multicore architectures. We describe a latency-tolerant model and a percolation technique for programming on multicore architectures. On an algorithmic level, both parallelism and locality do benefit from a specific data dependence transformation of NPDP. Next, we propose a parallel pipelining algorithm by decomposing computation operators and percolating data through a memory hierarchy to create just-in-time locality. In order to predict the execution time, we formulate an analytical performance model of the parallel algorithm. The parallel pipelining algorithm achieves not only high scalability on the 160-core IBM Cyclops64, but portable performance as well, across the 8-core Sun Niagara and quad-cores Intel Clovertown. Guangming Tan, Ninghui Sun, Guang R. Gao |
IEEE Trans. Parallel Distributed Syst. | 3 |
| 2008 | Open64 compiler infrastructure for emerging multicore/manycore architecture All Symposium TutorialabstractSummary form only given. Open64 was originally developed by SGI and released as the MlPSpro compiler. It has been well recognized as an industrial-strength production compiler for high-performance computing. It includes advanced inter-procedural optimizations, loop nest optimizations, global scalar optimizations, and code generation with advanced global register allocation and software pipelining. It was open-sourced in 2000 after it was retargeted to the Itanium processor. Now, Open64 is accepted by many compiler researchers as a good infrastructure for research on new compiler optimizing technologies, especially the for the emerging multi-core/many-core architecture. Sun C. Chan, Guang R. Gao, Barbara M. Chapman, T. Linthicum |
IPDPS | 2 |
| 2008 | Experience on optimizing irregular computation for memory hierarchy in manycore architectureabstractNo abstract available. Guangming Tan, Dongrui Fan, Junchao Zhang 0004, Andrew Russo, Guang R. Gao |
PPoPP | 5 |
| 2008 | Register allocation for software pipelined multidimensional loopsabstractThis article investigates register allocation for software pipelined multidimensional loops where the execution of successive iterations from an n -dimensional loop is overlapped. For single loop software pipelining, the lifetimes of a loop variable in successive iterations of the loop form a repetitive pattern. An effective register allocation method is to represent the pattern as a vector of lifetimes (or a vector lifetime using Rau's terminology [Rau 1992]) and map it to rotating registers. Unfortunately, the software pipelined schedule of a multidimensional loop is considerably more complex and so are the vector lifetimes in it. In this article, we develop a way to normalize and represent the vector lifetimes, which captures their complexity, while exposing their regularity that enables a simple solution. The problem is formulated as bin-packing of the multidimensional vector lifetimes on the surface of a space-time cylinder. A metric, called distance, is calculated either conservatively or aggressively to guide the bin-packing process, so that there is no overlapping between any two vector lifetimes, and the register requirement is minimized. This approach subsumes the classical register allocation for software pipelined single loops as a special case. The method has been implemented in the ORC compiler and produced code for the IA-64 architecture. Experimental results show the effectiveness. Several strategies for register allocation are compared and analyzed. Hongbo Rong, Alban Douillet, Guang R. Gao |
ACM Trans. Program. Lang. Syst. | 3 |
| 2007 | Software-Pipelining on Multi-Core Architectures
Alban Douillet, Guang R. Gao |
PACT | 2 |
| 2007 | Optimizing the Fast Fourier Transform on a Multi-core ArchitectureabstractThe rapid revolution in microprocessor chip architecture due to multicore technology is presenting unprecedented challenges to the application developers as well as system software designers: how to best exploit the parallelism potential due to such multi-core architectures? In this paper, we report an in-depth study on such challenges based on our experience of optimizing the fast Fourier transform (FFT) on the IBM Cyclops-64 chip architecture - a large-scale multi-core chip architecture consisting 160 thread units, associated memory banks and an interconnection network that connect them together in a shared memory organization. We demonstrate how multi-core architectures like the C64 could be used to achieve a high performance implementation of FFT both in 1D and 2D cases. We analyze the optimization challenges and opportunities including problem decomposition, load balancing, work distribution, and data-reuse, together with the exploiting of the C64 architecture features such as the multi-level of memory hierarchy and large register files. Furthermore, the experience learned during the hand-tuned optimization process have provided valuable guidance in our compiler optimization design and implementation. The main contributions of this paper include: 1) our study demonstrates that successful optimization for C64-like large-scale multi-core architectures requires a careful analysis that can identify certain domain-specific features of a target application (e.g. FFT) and match them well with some key multi-core architecture features; 2) our optimization, assisted with hand-tuned process, provided quantitative evidence on the importance of each optimization identified in 1); 3) automatic optimization by our compiler, the design and implementation of which is guided by the feedbacks from 1) and 2), shows excellent results that are often comparable to the results derived from our time-consuming hand-tuned code. Long Chen 0020, Ziang Hu, Junmin Lin, Guang R. Gao |
IPDPS | 4 |
| 2007 | Exploring a Multithreaded Methodology to Implement a Network Communication Protocol on the Cyclops-64 Multithreaded ArchitectureabstractThe IBM Cyclops-64 (C64) chip employs a multithreaded architecture that integrates a large number of hardware thread units on a single chip. A cellular supercomputer is being developed based on a 3D-mesh connection of the C64 chips. This paper introduces the Cyclops datagram protocol (CDP) developed for the C64 supercomputer system. CDP is inspired by the TCP/IP protocol, yet simpler and more compact. The implementation of CDP leverages the abundant hardware thread-level parallelism provided by the C64 multithreaded architecture. The main contributions of this paper are: (1) We have completed a design and implementation of CDP that is used as the fundamental communication infrastructure for the C64 supercomputer system. (2) CDP successfully exploits the massive thread-level parallelism provided on the C64 hardware, achieving good performance scalability; (3) CDP is quite efficient. Its peak throughput reaches 884Mbps on the gigabit Ethernet, even it is running at the user-level on a single-processor Linux machine; (4) Extensive application test cases are passed and no reliability problems have been reported. Ge Gan, Ziang Hu, Juan del Cuvillo, Guang R. Gao |
IPDPS | 4 |
| 2007 | ParalleX: A Study of A New Parallel Computation ModelabstractThis paper proposes the study of a new computation model that attempts to address the underlying sources of performance degradation (e.g. latency, overhead, and starvation) and the difficulties of programmer productivity (e.g. explicit locality management and scheduling, performance tuning, fragmented memory, and synchronous global barriers) to dramatically enhance the broad effectiveness of parallel processing for high end computing. In this paper, we present the progress of our research on a parallel programming and execution model - mainly, ParalleX. We describe the functional elements of ParalleX, one such model being explored as part of this project. We also report our progress on the development and study of a subset of ParalleX $the LITL-X at University of Delaware. We then present a novel architecture model - Gilgamesh II - as a ParalleX processing architecture. A design point study of Gilgamesh II and the architecture concept strategy are presented. Guang R. Gao, Thomas L. Sterling, Rick L. Stevens, Mark Hereld, Weirong Zhu |
IPDPS | 1 |
| 2007 | Experience of Optimizing FFT on Intel ArchitecturesabstractAutomatic library generators, such as ATLAS, Spiral and FFTW, are promising technologies to generate efficient code for different computer architectures. The library generators usually tune programs using two layers of optimizations: the search at the algorithm level, and the optimization for micro kernels. The micro optimizations are important for the performance of library, because the optimized micro kernels are the bases of algorithm level search, and have a great impact on the overall performance of the generated libraries. A successfully optimized micro kernel requires thorough understanding of the interaction between architectural features and highly optimized code. However, literature on library generators focus more on the algorithm level optimization, and usually give only simple discussion of how kernel codes are generated and tuned. As a result, the optimization of micro kernels is still an art that depends on individual expertise, and is insufficiently documented. In this paper, we study the problem of how to generate efficient FFT kernels. We apply a series of micro optimizations, for example, memory hierarchy locality enhancements, to several FFT routines, and use hardware counters to observe the interactions between those optimizations with Intel Pentium 4 and the latest Intel core 2 architecture. We achieve good speedups, and more importantly, we present methods that can be used to generate high-performance FFT kernels on different architectures. Daniel A. Orozco, Liping Xue, Murat Bolat, Xiaoming Li 0010, Guang R. Gao |
IPDPS | 5 |
| 2007 | Automatic Program Segment Similarity Detection in Targeted Program Performance ImprovementabstractTargeted optimization of program segments can provide an additional program speedup over the highest default optimization level, such as -O3 in GCC. The key challenge is how to automatically search for performance sensitive program segments in a given code, to which a customized set of optimization compiler options could be applied. In this paper we propose a method for automatic detection of performance sensitive program segments based on program segment similarity. First we create a proxy segment template database trained over a set of random input programs. The compiler identifies program segments by correlating them to the pre-build proxy segment templates using the syntax structure and architecture-dependent behavior similarity. We argue that the identified program segments can be custom optimized to improve the overall program performance. The method is evaluated on the Intel XScale PXA255 platform using randomly selected benchmarks. The experimental results show that our method can provide additional speedups over the highest optimization level in GCC 3.3 (-O3) for an arbitrary set of applications. Haiping Wu, Eunjung Park, Mihailo Kaplarevic, Yingping Zhang, Murat Bolat, Xiaoming Li 0010, Guang R. Gao |
IPDPS | 7 |
| 2007 | On the Role of Deterministic Fine-Grain Data Synchronization for Scientific Applications: A Revisit in the Emerging Many-Core EraabstractThe design of microprocessor chip for high-end computing systems is moving towards many-core architectures with 10s or 100+ processing units. An important class of the target applications for such architectures are scientific numerical computations, many of which are intrinsically deterministic - that is for a given input a fixed output (result) should be produced no matter how the program is parallelized. It is critical that the read-after-write data dependencies in such programs should be implemented correctly and efficiently via fine-grain data synchronization. In this paper, we investigate the parallelization of three representative scientific computation kernels using fine-grain data synchronization supported by an recently proposed architectural mechanism for many-core chips, called synchronization state buffer (SSB). Using detailed simulation on a simulator for the IBM 160-core Cyclops-64 chip architecture with the SSB extension, our experiments demonstrate significant performance advantage of using fine-grain data synchronization based parallelization schemes for scientific workloads. Weirong Zhu, Ziang Hu, Guang R. Gao |
IPDPS | 3 |
| 2007 | On the Role of Deterministic Fine-Grain Data Synchronization for Scientific Applications: A Revisit in the Emerging Many-Core EraabstractThe design of microprocessor chip for high-end computing systems is moving towards many-core architectures with 10s or 100+ processing units. An important class of the target applications for such architectures are scientific numerical computations, many of which are intrinsically deterministic - that is for a given input a fixed output (result) should be produced no matter how the program is parallelized. It is critical that the read-after-write data dependencies in such programs should be implemented correctly and efficiently via fine-grain data synchronization. In this paper, we investigate the parallelization of three representative scientific computation kernels using fine-grain data synchronization supported by an recently proposed architectural mechanism for many-core chips, called synchronization state buffer (SSB). Using detailed simulation on a simulator for the IBM 160-core Cyclops-64 chip architecture with the SSB extension, our experiments demonstrate significant performance advantage of using fine-grain data synchronization based parallelization schemes for scientific workloads. Weirong Zhu, Ziang Hu, Guang R. Gao |
IPDPS | 3 |
| 2007 | Synchronization state buffer: supporting efficient fine-grain synchronization on many-core architecturesabstractEfficient fine-grain synchronization is extremely important to effectively harness the computational power of many-core architectures. However, designing and implementing finegrain synchronization in such architectures presents several challenges, including issues of synchronization induced overhead, storage cost, scalability, and the level of granularity to which synchronization is applicable. This paper proposes the Synchronization State Buffer (SSB), a scalable architectural design for fine-grain synchronization that efficiently performs synchronizations between concurrent threads. The design of SSB is motivated by the following observation: at any instance during the parallel execution only a small fraction of memory locations are actively participating in synchronization. Based on this observation we present a fine-grain synchronization design that records and manages the states of frequently synchronized data using modest hardware support. We have implemented the SSB design in the context of the 160-core IBM Cyclops-64 architecture. Using detailed simulation, we present our experience for a set of benchmarks with different workload characteristics. Weirong Zhu, Vugranam C. Sreedhar, Ziang Hu, Guang R. Gao |
ISCA | 4 |
| 2007 | On Parallel Models of Computation
Guang R. Gao |
NPC | 1 |
| 2007 | Optimized lock assignment and allocation: a method for exploiting concurrency among critical sectionsabstractNo abstract available. Vugranam C. Sreedhar, Weirong Zhu, Vivek Sarkar, Guang R. Gao |
PPoPP | 5 |
| 2007 | A parallel dynamic programming algorithm on a multi-core architectureabstractDynamic programming is an efficient technique to solve combinatorial search and optimization problem. There have been many parallel dynamic programming algorithms. The purpose of this paper is to study a family of dynamic programming algorithm where data dependence appear between non-consecutive stages, in other words, the data dependence is non-uniform. This kind of dynnamic programming is typically called nonserial polyadic dynamic programming. Owing to the non-uniform data dependence, it is harder to optimize this problem for parallelism and locality on parallel architectures. In this paper, we address the chanllenge of exploiting fine grain parallelism and locality of nonserial polyadic dynamic programming on a multi-core architecture. We present a programming and execution model for multi-core architectures with memory hierarchy. In the framework of the new model, the parallelism and locality benifit from a data dependence transformation. We propose a parallel pipelined algorithm for filling the dynamic programming matrix by decomposing the computation operators. The new parallel algorithm tolerates the memory access latency using multi-thread and is easily improved with tile technique. We formulate and analytically solve the optimization problem determing the tile size that minimizes the total execution time. The experiments on a simulator give a validation of the proposed model and show that the fine grain parallel algorithm achieves sub-linear speedup and that a potential high scalability on multi-core arichitecture. Guangming Tan, Ninghui Sun, Guang R. Gao |
SPAA | 3 |
| 2007 | Single-dimension software pipelining for multidimensional loopsabstractTraditionally, software pipelining is applied either to the innermost loop of a given loop nest or from the innermost loop to outer loops. This paper proposes a three-step approach, called single-dimension software pipelining (SSP) , to software pipeline a loop nest at an arbitrary loop level that has a rectangular iteration space and contains no sibling inner loops in it. The first step identifies the most profitable loop level for software pipelining in terms of initiation rate, data reuse potential, or any other optimization criteria. The second step simplifies the multidimensional data-dependence graph (DDG) of the selected loop level into a one-dimensional DDG and constructs a one-dimensional (1D) schedule. Based on the one-dimensional schedule, the third step derives a simple mapping function that specifies the schedule time for the operation instances in the multidimensional loop. The classical modulo scheduling is subsumed by SSP as a special case. SSP is also closely related to hyperplane scheduling, and, in fact, extends it to be resource constrained. We prove that SSP schedules are correct and at least as efficient as those schedules generated by traditional modulo scheduling methods. We extend SSP to schedule imperfect loop nests, which are most common at the instruction level. Multiple initiation intervals are naturally allowed to improve execution efficiency. Feasibility and correctness of our approach are verified by a prototype implementation in the ORC compiler for the IA-64 architecture, tested with loop nests from Livermore and SPEC2000 floating-point benchmarks. Preliminary experimental results reveal that, compared to modulo scheduling, software pipelining at an appropriate loop level results in significant performance improvement. Software pipelining is beneficial even with prior loop transformations. Hongbo Rong, Zhizhong Tang, R. Govindarajan, Alban Douillet, Guang R. Gao |
ACM Trans. Archit. Code Optim. | 5 |
| 2006 | Multi-dimensional Kernel Generation for Loop Nest Software Pipelining
Alban Douillet, Hongbo Rong, Guang R. Gao |
Euro-Par | 3 |
| 2006 | Optimization of Dense Matrix Multiplication on IBM Cyclops-64: Challenges and Experiences
Ziang Hu, Juan del Cuvillo, Weirong Zhu, Guang R. Gao |
Euro-Par | 4 |
| 2006 | Hierarchical multithreading: programming model and system softwareabstractThis paper addresses the underlying sources of performance degradation (e.g. latency, overhead, and starvation) and the difficulties of programmer productivity (e.g. explicit locality management and scheduling, performance tuning, fragmented memory, and synchronous global barriers) to dramatically enhance the broad effectiveness of parallel processing for high end computing. We are developing a hierarchical threaded virtual machine (HTVM) that defines a dynamic, multithreaded execution model and programming model, providing an architecture abstraction for HEC system software and tools development. We are working on a prototype language, LITL-X (pronounced "little-X") for latency intrinsic-tolerant language, which provides the application programmers with a powerful set of semantic constructs to organize parallel computations in a way that hides/manages latency and limits the effects of overhead. This is quite different from locality management, although the intent of both strategies is to minimize the effect of latency on the efficiency of computation. We work on a dynamic compilation and runtime model to achieve efficient LITL-X program execution. Several adaptive optimizations were studied. A methodology of incorporating domain-specific knowledge in program optimization was studied. Finally, we plan to implement our method in an experimental testbed for a HEC architecture and perform a qualitative and quantitative evaluation on selected applications Guang R. Gao, Thomas L. Sterling, Rick L. Stevens, Mark Hereld, Weirong Zhu |
IPDPS | 1 |
| 2006 | A study of the on-chip interconnection network for the IBM Cyclops64 multi-core architectureabstractThe designs of high-performance processor architectures are moving toward the integration of a large number of multiple processing cores on a single chip. The IBM Cyclops-64 (C64) is a petaflop supercomputer built on multi-core system-on-a-chip technology. Each C64 chip employs a multistage pipelined crossbar switch as its on-chip interconnection network to provide high bandwidth and low latency communication between the 160 thread processing cores, the on-chip SRAM memory banks, and other components. In this paper, we present a study of the architecture and performance of the C64 on-chip interconnection network through simulation. Our experimental results provide observations on the network behavior: (1) Dedicated channels can be created between any output port to input port of the C64 crossbar with latency as low as 7 cycles. The C64 crossbar has the potential reach the full hardware bandwidth, and exhibit a non-blocking behavior; (2) The C64 crossbar is a stable network; (3) The network logic design appears to provide a reasonable opportunity for sharing the channel bandwidth between traffic in either direction; (4) A simple circular neighbor arbitration scheme can achieve competitive performance level comparing to the complex segmented LRU (least recently used) matrix arbitration scheme without losing the fairness. (5) Application-driven benchmarks provide comparable results to synthetic workloads. Yingping Zhang, Taikyeong T. Jeong, Haiping Wu, Ronny Nitzsche, Guang R. Gao |
IPDPS | 6 |
| 2005 | Discriminating transmembrane proteins from signal peptides using SVM-Fisher approachabstractMost computational methods for transmembrane protein topology prediction rely on compositional bias of amino acids to locate those hydrophobic domains in transmembrane proteins. Because signal peptides also contain hydrophobic segments, these computational prediction methods often misidentify signal peptides as transmembrane proteins. Here, we present a new approach that combines the SVM-Fisher discrimination method and TMMOD - a hidden Markov model based predictor for transmembrane proteins. While TMMOD alone has already outperformed most existing methods in both identification and topology prediction, this new approach further improves the ability of TMMOD to discriminate between transmembrane proteins and signal peptide containing proteins, reducing mis-prediction of signal peptides by more than 30% in our test data. Robel Y. Kahsay, Guang R. Gao |
ICMLA | 3 |
| 2005 | An energy efficient TLB design methodologyabstractThis paper researches Translation Look-aside Buffer (TLB) of embedded processor. Based on an analysis of design-related factors: power, area, critical path and performance of our research model-Godson-I, a low-power TLB design is proposed without sacrifice of performance and timing. Using this method, the following results are achieved: power of TLB-RAM reduces 92.7% and area of TLB-RAM reduces 50%. Compared with other methods, the hit rate of this design is much higher and the accessing conflict to RAM between ITLB and DTLB is much reduced. Although our work targets to Godson-I, the proposed methodology should be applicable to other designs Dongrui Fan, Hailin Huang, Guang R. Gao |
ISLPED | 4 |
| 2005 | Performance Modelling and Optimization of Memory Access on Cellular Computer Architecture Cyclops64
Yanwei Niu, Ziang Hu, Kenneth E. Barner, Guang R. Gao |
NPC | 4 |
| 2005 | Register allocation for software pipelined multi-dimensional loopsabstractSoftware pipelining of a multi-dimensional loop is an important optimization that overlaps the execution of successive outermost loop iterations to explore instruction-level parallelism from the entire n-dimensional iteration space. This paper investigates register allocation for software pipelined multi-dimensional loops.For single loop software pipelining, the lifetime instances of a loop variant in successive iterations of the loop form a repetitive pattern. An effective register allocation method is to represent the pattern as a vector of lifetimes (or a vector lifetime using Rau's terminology) and map it to rotating registers. Unfortunately, the software pipelined schedule of a multi-dimensional loop is considerably more complex, and so are the vector lifetimes in it.In this paper, we develop a way to normalize and represent vector lifetimes in multi-dimensional loop software pipelining, which capture their complexity, while exposing their regularity that enables us to develop a simple, yet powerful solution. Our algorithm is based on the development of a metric, called distance, that quantitatively determines the degree of potential overlapping (conflicts) between two vector lifetimes. We show how to calculate and use the distance, conservatively or aggressively, to guide the register allocation of the vector lifetimes under a bin-packing algorithm framework. The classical register allocation for software pipelined single loops is subsumed by our method as a special case.The method has been implemented in the ORC compiler and produced code for the Itanium architecture. We report the effectiveness of our method on 134 loop nests with 348 loop levels. Several strategies for register allocation are compared and analyzed. Hongbo Rong, Alban Douillet, Guang R. Gao |
PLDI | 3 |
| 2005 | An improved hidden Markov model for transmembrane protein detection and topology prediction and its applications to complete genomesabstractMOTIVATION: Knowledge of the transmembrane helical topology can help identify binding sites and infer functions for membrane proteins. However, because membrane proteins are hard to solubilize and purify, only a very small amount of membrane proteins have structure and topology experimentally determined. This has motivated various computational methods for predicting the topology of membrane proteins. RESULTS: We present an improved hidden Markov model, TMMOD, for the identification and topology prediction of transmembrane proteins. Our model uses TMHMM as a prototype, but differs from TMHMM by the architecture of the submodels for loops on both sides of the membrane and also by the model training procedure. In cross-validation experiments using a set of 83 transmembrane proteins with known topology, TMMOD outperformed TMHMM and other existing methods, with an accuracy of 89% for both topology and locations. In another experiment using a separate set of 160 transmembrane proteins, TMMOD had 84% for topology and 89% for locations. When utilized for identifying transmembrane proteins from non-transmembrane proteins, particularly signal peptides, TMMOD has consistently fewer false positives than TMHMM does. Application of TMMOD to a collection of complete genomes shows that the number of predicted membrane proteins accounts for approximately 20-30% of all genes in those genomes, and that the topology where both the N- and C-termini are in the cytoplasm is dominant in these organisms except for Caenorhabditis elegans. AVAILABILITY: http://liao.cis.udel.edu/website/servers/TMMOD/ Robel Y. Kahsay, Guang R. Gao |
Bioinform. | 2 |
| 2005 | Quasi-consensus-based comparison of profile hidden Markov models for protein sequencesabstractA simple approach for the sensitive detection of distant relationships among protein families and for sequence-structure alignment via comparison of hidden Markov models based on their quasi-consensus sequences is presented. Using a previously published benchmark dataset, the approach is demonstrated to give better homology detection and yield alignments with improved accuracy in comparison to an existing state-of-the-art dynamic programming profile-profile comparison method. This method also runs significantly faster and is therefore suitable for a server covering the rapidly increasing structure database. A server based on this method is available at http://liao.cis.udel.edu/website/servers/modmod Robel Y. Kahsay, Guoli Wang 0005, Guang R. Gao, Roland L. Dunbrack Jr. |
Bioinform. | 3 |
| 2005 | Madd Operation Aware Redundancy EliminationabstractOn general purpose computer architectures, the optimization of redundancy elimination almost always improves the cycle count. We argue that a specific consideration should be taken when applying this optimization to embedded architectures that feature multiply-add(MADD) instruction. This paper presents a redundancy elimination algorithm with MADD operation aware consideration. It produces optimized results for both code size and cycle count. The algorithm is integrated into KylinC compiler, a compiler for embedded systems developed at the University of Delaware. Experimental results demonstrate that the cycle counts of the benchmark programs are reduced on average 8% and the code sizes are reduced on average 5.27%. Haiping Wu, Ziang Hu, Joseph B. Manzano, Guang R. Gao |
Int. J. Softw. Eng. Knowl. Eng. | 4 |
| 2004 | Code Generation for Single-Dimension Software Pipelining of Multi-Dimensional LoopsabstractTraditionally, software pipelining is applied either to the innermost loop of a given loop nest or from the innermost loop to the outer loops. We proposed a scheduling method, called single-dimension software pipelining (SSP), to software pipeline a multidimensional loop nest at an arbitrary loop level. We describe our solution to SSP code generation. In contrast to traditional software pipelining, SSP handles two distinct repetitive patterns, and thus requires new code generation algorithms. Further, these two distinct repetitive patterns complicate register assignment and require two levels of register renaming. As rotating registers support renaming at only one level, our solution is based on a combination of dynamic register renaming (using rotating registers) and static register renaming (using code replication). Finally, code size increase, an even more important issue for SSP than for traditional software-pipelining, is also addressed. Optimizations are proposed to reduce code size without significant performance degradation. We first present a code generation scheme and subsequently implement it for the IA-64 architecture, making effective use of rotating registers and predicated execution. We present some initial experimental results, which demonstrate not only the feasibility and correctness of our code generation scheme, but also its code quality. Hongbo Rong, Alban Douillet, R. Govindarajan, Guang R. Gao |
CGO | 4 |
| 2004 | Single-Dimension Software Pipelining for Multi-Dimensional LoopsabstractTraditionally, software pipelining is applied either to the innermost loop of a given loop nest or from the innermost loop to outer loops. We propose a three-step approach, called single-dimension software pipelining (SSP), to software pipeline a loop nest at an arbitrary loop level. The first step identifies the most profitable loop level for software pipelining in terms of initiation rate or data reuse potential. The second step simplifies the multidimensional data-dependence graph (DDG) into a 1-dimensional DDG and constructs a 1-dimensional schedule for the selected loop level. The third step derives a simple mapping function which specifies the schedule time for the operations of the multidimensional loop, based on the 1-dimensional schedule. We prove that the SSP method is correct and at least as efficient as other modulo scheduling methods. We establish the feasibility and correctness of our approach by implementing it on the IA-64 architecture. Experimental results on a small number of loops show significant performance improvements over existing modulo scheduling methods that software pipeline a loop nest from the innermost loop. Hongbo Rong, Zhizhong Tang, R. Govindarajan, Alban Douillet, Guang R. Gao |
CGO | 5 |
| 2004 | Implementing parallel conjugate gradient on the EARTH multithreaded architectureabstractConjugate gradient (CG) is one of the most popular iterative approaches to solving large sparse linear systems of equations. This work reports a parallel implementation of CG on clusters with EARTH multithreaded runtime support. Interphase and intraphase communication costs are balanced using a two-dimensional blocking method, minimizing overall communication costs. EARTH'S adaptive, event-driven multithreaded execution model gives additional opportunities to overlap communication and computation to achieve even better scalability. Experiments on a large Beowulf cluster with gigabit Ethernet show notable improvements over other parallel CG implementations. For example, with the NAS CG benchmark problem size Class C, our implementation achieved a speedup of 41 on a 64-node cluster, compared to 13 for the MPl-based NAS version. The results demonstrate that the combination of the two-dimensional blocking method and the EARTH architectural runtime support helps to compensate for the low communications bandwidth common to most clusters. Kevin B. Theobald, Guang R. Gao |
CLUSTER | 3 |
| 2004 | If-Conversion in SSA Form
Arthur Stoutchinin, Guang R. Gao |
Euro-Par | 2 |
| 2004 | An Improved Hidden Markov Model for Transmembrane Topology PredictionabstractIn this work, we present a hidden Markov model for predicting the topology of transmembrane proteins. Our model differs from TMHMM (Sonnhammer et al) both in the architecture of the loop submodels on both sides of the membrane and in the model training procedure. Using maximum likelihood parameter estimation with significant regularization, the model was trained and cross-validated on two sets of sequences with known topology. On the first set of 83 sequences, the prediction accuracy of our model for membrane domain locations and topology are both 89% while TMHMM reported 83% for domain locations and 77% for topology. On the second dataset of 160 sequences, our prediction accuracies are 89% for locations and 84% for topology: both surpassing significantly those of TMHMM (83% and 77%). Robel Y. Kahsay, Guang R. Gao |
ICTAI | 3 |
| 2004 | A fine-grain load-adaptive algorithm of the 2D discrete wavelet transform for multithreaded architectures
Parimala Thulasiraman, Ashfaq Khokhar 0001, Gerd Heber, Guang R. Gao |
J. Parallel Distributed Comput. | 4 |
| 2003 | A Cluster-Based Solution for High Performance Hmmpfam Using EARTH Execution ModelabstractHmmpfam is a widely used computation-intensive bioinformatics software for sequence classification. The contribution of this paper is the first largely scalable and robust cluster-based solution of parallel hmmpfam based on EARTH (Efficient Architecture for Running Threads), which is an event-driven fine-grain multi-threaded programming execution model. Compared with the original PVM implementation, our implementation shows notable improvements on absolute speed-up and better scalability. Experiments on two advanced supercomputing clusters at Argonne National Laboratory (ANL) achieve an absolute speedup of 222.8 on 128 dual-CPU nodes for a representative data set, which means that the total execution time is reduced from 15.9 hours (serial program) to only 4.3 minutes. Weirong Zhu, Yanwei Niu, Jizhu Lu, Chuan Shen, Guang R. Gao |
CLUSTER | 5 |
| 2003 | DIMES: an iterative emulation platform for Multiprocessor-System-On-Chip designsabstractDIMES (Delaware Iterative Multiprocessor Emulation System) is a new FPGA based hardware emulator for large logic systems incorporating a number of identical functional modules such as a Multiprocessor-System-On-Chip or a cellular architecture. It aims to provide both logic verification and early software development environments with dramatically improved cost performance. Under our iterative emulation technology, a part of FPGA resource will be time-shared among several identical modules of the target design and iteratively used to emulate them in multiple steps. The representation of the identical modules in the FPGA consists of (1) a single module copy and (2) a storage block holding all the states of the modules during iterative emulation. On a first implementation of DIMES-called DIMES/P, we have implemented a multiprocessor-system-on-chip design of the IBM Cyclops architecture as a case study. We report our preliminary results and experience of exploiting the iterative emulation technology in Cyclops emulation. Hirofumi Sakane, Levent Yakay, Vishal Karna, Clement Leung, Guang R. Gao |
FPT | 5 |
| 2003 | Inter-procedural stacked register allocation for itanium® like architectureabstractA hardware managed register stack, Register Stack Engine (RSE), is implemented in Itanium® architecture to provide a unified and flexible register structure to software. The compiler allocates each procedure a register stack frame with its size explicitly specified using an alloc instruction. When the total number of registers used by the procedures on the call stack exceeds the number of physical registers, RSE performs automatically register overflows and fills to ensure that the current procedure has its requested registers available. The virtual register stack frames and RSE alleviate the need of explicit spills by the compiler, but our experimental results indicate that a trade-off exists between using stacked registers and explicit spills under high register pressure due to the uneven cost between them. In this work, we introduce the stacked register quota assignment problem based on the observation that reducing stacked register usage in some procedures could reduce the total memory access time of spilling registers, which includes the time caused by the loads/stores due to explicit register spills and RSE overflows/fills. We propose a new inter-procedural algorithm to solve the problem by allocating stacked registers across procedures based on a quantitative cost model. The results show that our approach can improve performance significantly for the programs with high RSE overflow cost, e.g. perlbmk and crafty, improved by 14% and 3.7%, respectively. Sun Chan, Guang R. Gao, Roy Dz-Ching Ju, Guei-Yuan Lueh, Zhaoqing Zhang |
ICS | 3 |
| 2003 | Biologically motivated computational models
Mitra Basu, Jonathan Timmis, Dipankar Dasgupta, Daniel D. Lee, Guang R. Gao, Kwabena Boahen 0001 |
IJCNN | 5 |
| 2003 | Implementation of the EARTH programming model on SMP clusters: a multi-threaded language and runtime systemabstractAbstract This paper describes the design and implementation of an Efficient Architecture for Running THreads (EARTH) runtime system for a multi‐processor/multi‐node cluster. The (EARTH) model was designed to support the efficient execution of parallel (multi‐threaded) programs with irregular fine‐grain parallelism using off‐the‐shelf computers. Implementing an EARTH runtime system requires an explicitly threaded runtime system. For portability, we built this runtime system on top of Pthreads under Linux and used sockets for inter‐node communication. Moreover, in order to make the best use of the resources available on a cluster of symmetric multi‐processors (SMP), this implementation enables the overlapping of communication and computation. We used Threaded‐C, a language designed to implement the programming model supported by the EARTH architecture. This language allows the expression of various levels of parallelism and provides the primitives needed to manage the required communication and synchronization. The Threaded‐C programming language supports irregular fine‐grain parallelism through a two‐level hierarchy of threads and fibers. It also provides various synchronization and communication constructs that reflect the nature of EARTH's fibers—non‐preemptive execution with data‐driven scheduling—as well as the extensive use of split‐phase transactions on EARTH to execute long‐latency operations. Copyright © 2003 John Wiley & Sons, Ltd. Guy Tremblay, C. J. Morrone, José Nelson Amaral, Guang R. Gao |
Concurr. Comput. Pract. Exp. | 4 |
| 2003 | Evaluation and Choice of Various Branch Predictors for Low-Power Embedded Processor
Dongrui Fan, Guang R. Gao, Rongcai Zhao |
J. Comput. Sci. Technol. | 3 |
| 2003 | Minimum Register Instruction Sequencing to Reduce Register Spills in Out-of-Order Issue Superscalar ArchitecturesabstractIn this paper, we address the problem of generating an optimal instruction sequence S for a Directed Acyclic Graph (DAG), where S is optimal in terms of the number of registers used. We call this the Minimum Register Instruction Sequence (MRIS) problem. The motivation for revisiting the MRIS problem stems from several modern architecture innovations/requirements that has put the instruction sequencing problem in a new context. We develop an efficient heuristic solution for the MRIS problem. This solution is based on the notion of instruction lineage-a set of instructions that can definitely share a single register. The formation of lineages exploits the structure of the dependence graph to facilitate the sharing of registers not only among instructions within a lineage, but also across lineages. Our efficient heuristics to "fuse" lineages further reduce the register requirement. This reduced register requirement results in generating a code sequence with fewer register spills. We have implemented our solution in the MIPSpro production compiler and measured its performance on the SPEC95 floating point benchmark suite. Our experimental results demonstrate that the proposed instruction sequencing method significantly reduces the number of spill loads and stores inserted in the code, by more than 50 percent in each of the benchmarks. Our approach reduces the average number of dynamic loads and stores executed by 10.4 percent and 3.7 percent, respectively. Further, our approach improves the execution time of the benchmarks on an average by 3.2 percent. In order to evaluate how efficiently our heuristics find a near-optimal solution to the MRIS problem, we develop an elegant integer linear programming formulation for the MRIS problem. Using a commercial integer linear programming solver, we obtain the optimal solution for the MRIS problem. Comparing the optimal solution from the integer linear programming tool with our heuristic solution reveals that, in a very large majority (99.2 percent) of the cases, our heuristic solution is optimal. For this experiment, we used a set of 675 dependence graphs representing basic blocks extracted from scientific benchmark programs. R. Govindarajan, José Nelson Amaral, Chihong Zhang, Guang R. Gao |
IEEE Trans. Computers | 5 |
| 2003 | Special issue on compilers, architecture, and synthesis for embedded systemsabstractNo abstract available. Guang R. Gao, Trevor N. Mudge |
ACM Trans. Embed. Comput. Syst. | 1 |
| 2002 | On achieving balanced power consumption in software pipelined loopsabstractWhile a significant body of work in compilers has been devoted to reducing energy consumption in embedded systems, the role of a compiler in harnessing the power variation has not been widely explored. Since sharp power variations across time steps cause power supply noises and degrade reliability of functional blocks, power variation is a design constraint in embedded systems. With the advent of high performance embedded systems and extensive deployment of fine grain clock-gating, reducing variations in power is becoming increasingly important.This paper studies how compilation techniques, more specifically instruction scheduling, can ameliorate variations in power due to functional units during program execution. By extending our previous work on rate-optimal software pipelining, this paper formulates the problem of constructing a performance-optimal schedule that minimizes power variations as an integer linear programming (ILP) problem. The formulation can be solved using an ILP solver. We applied our approach on SPEC NAS benchmarks to construct software pipelined schedules that have minimum power variations. The benchmarks are executed on the Wattch power simulator. In comparison to the original (power-unaware) scheduler implemented in the MIPSpro compiler, our power-aware approach generates schedules which have significantly lower power variations while maintaining the same performance. Such schedules have the potential to reduce hardware cost on power delivery in designing embedded systems. Guang R. Gao, Clement Leung |
CASES | 2 |
| 2002 | Power-Performance Trade-Offs for Energy-Efficient Architectures: A Quantitative StudyabstractThe drastic increase in power consumption by modern processors emphasizes the need for power-performance trade-offs in architecture design space exploration and compiler optimizations. This paper reports a quantitative study on the power-performance trade-offs in software pipelined schedules for an Itanium-like EPIC architecture with dual-speed pipelines, in which functional units are partitioned into fast ones and slow ones. We have developed an integer linear programming formulation to capture the power-performance tradeoffs for software pipelined loops. The proposed integer linear programming formulation and its solution method have been implemented and tested on a set of SPEC2000 benchmarks. The results are compared with an Itanium-like architecture (baseline) in which there are four functional units (FUs) and all of them are fast units. Our quantitative study reveals that by introducing a few slow FUs in place of fast FUs in the baseline architecture, the total energy consumed by FUs can be considerably reduced. When 2 out of 4 FUs are set as slow, the total energy consumed by FUs is reduced by up to 31.1% (with an average reduction of 25.2%) compared with the baseline configuration, while the performance degradation caused by using slow FUs is small. If performance demand is less critical, then energy reduction of up to 40.3% compared with the baseline configuration can be achieved. R. Govindarajan, Guang R. Gao, Kevin B. Theobald |
ICCD | 3 |
| 2002 | TROLL-Tandem Repeat Occurrence LocatorabstractSUMMARY: Tandem Repeat Occurrence Locator (TROLL), is a light-weight Simple Sequence Repeat (SSR) finder based on a slight modification of the Aho-Corasick algorithm. It is fast and only requires a standard Personal Computer (PC) to operate. We report running times of 127 s to find all SSRs of length 20 bp or more on the complete Arabdopsis genome--approx. 130 Mbases divided in five chromosomes--using a PC Athlon 650 MHz with 256 MB of RAM. AVAILABILITY: TROLL is an open source project and is available at http://finder.sourceforge.net. Adalberto T. Castelo, Wellington Santos Martins, Guang R. Gao |
Bioinform. | 3 |
| 2002 | CASA: a server for the critical assessment of protein sequence alignment accuracyabstractSUMMARY: A public server for evaluating the accuracy of protein sequence alignment methods is presented. CASA is an implementation of the alignment accuracy benchmark presented by Sauder et al. (Proteins, 40, 6-22, 2000). The benchmark currently contains 39321 pairwise protein structure alignments produced with the CE program from SCOP domain definitions. The server produces graphical and tabular comparisons of the accuracy of a user's input sequence alignments with other commonly used programs, such as BLAST, PSI-BLAST, Clustal W, and SAM-T99. AVAILABILITY: The server is located at http://capb.dbi.udel.edu/casa. Robel Y. Kahsay, Guoli Wang 0005, Nataraj Dongre, Guang R. Gao, Roland L. Dunbrack Jr. |
Bioinform. | 4 |
| 2002 | Implementation and evaluation of a communication intensive application on the EARTH multithreaded systemabstractAbstract This paper reports a study of sparse Matrix Vector Multiplication (MVM) on a parallel computing platform based on a fine‐grained multithreaded program execution model. Such sparse MVM computations, when parallelized without performing graph partitioning, suffers a very high communication to computation ratio, and is well known to have a very limited scalability on traditional distributed‐memory machines. The particular multithreaded system we use is the Efficient Architecture for Running THreads (EARTH) model, which can be implemented from off‐the‐shelf processors. With the Class B input sparse matrix from the NAS CG benchmark (75 000 rows), we attain an absolute speedup of 90 on 120 nodes of a distributed memory configuration. This is achieved without using inspector/executor or graph partitioning, or any communication minimization phase, which means that similar results can be expected for adaptive problems as well. High scalability is achieved because of a number of characteristics of the EARTH architecture: local synchronizations, low communication overheads, ability to overlap communication and computation, and low context‐switching costs. Copyright © 2002 John Wiley & Sons, Ltd. Kevin B. Theobald, Rishi Kumar, Gagan Agrawal, Gerd Heber, Ruppa K. Thulasiram, Guang R. Gao |
Concurr. Comput. Pract. Exp. | 6 |
| 2001 | Speculative Prefetching of Induction Pointers
Arthur Stoutchinin, José Nelson Amaral, Guang R. Gao, James C. Dehnert, Suneel Jain, Alban Douillet |
CC | 3 |
| 2001 | Topic 08+13: Instruction-Level Parallelism and Computer Architecture
Eduard Ayguadé, Fredrik Dahlgren, Christine Eisenbeis, Roger Espasa, Guang R. Gao, Henk L. Muller, Rizos Sakellariou, André Seznec |
Euro-Par | 5 |
| 2001 | Minimum Register Instruction Sequence Problem: Revisiting Optimal Code Generation for DAGsabstractWe revisit the optimal code generation or evaluation order determination problem-the problem of generating an instruction sequence from a data dependence graph (DDG). In particular, we are interested in generating an instruction sequence S that is optimal in terms of the number of registers used by the sequence S. We call this MRIS (Minimum Register Instruction Sequence) problem. We developed an efficient heuristic solution for the MRIS problem based on the notion of instruction lineage. This solution facilitates the sharing of registers among instructions within a lineage and across lineages by exploiting the structure of a DDG. We implemented our solution on a production compiler and measured the reduction in the number of (spill) loads and (Spill) stores and the wall-clock execution time for the SPEC95 floating point benchmark suite. On average our method reduced the number of loads and stores by 11.5% and 15.9%, respectively, and decreased the total execution time by 2.5%. R. Govindarajan, Chihong Zhang, José Nelson Amaral, Guang R. Gao |
IPDPS | 5 |
| 2001 | Multithreaded Algorithms for Pricing a Class of Complex OptionsabstractIn this paper, we study multithreaded algorithms for pricing American Style options. We describe the algorithms, explain their relative complexities, and study their performance. The binomial lattice problem has been formulated in two distinct ways. In the first approach, the recursive algorithm, we establish a parent-child relationship between threads while fully exploiting the inherent parallelism. The second approach, the iterative algorithm, follows a data-flow model based on the producer-consumer style of programming. We implement the algorithms on the EARTH platform. The limitations posed by the problem size on the recursive algorithm and the solution to overcome this problem by the iterative algorithm are explained through the performance results. We have then extended these algorithms to study complicated options with dividend paying underlying assets and reported the performance results. Ruppa K. Thulasiram, Lubomir Litov, Hassan Nojumi, Christopher T. Downing, Guang R. Gao |
IPDPS | 5 |
| 2000 | A Theory for Software-Hardware Co-Scheduling for ASIPs and Embedded ProcessorsabstractExploiting instruction-level parallelism (ILP) is extremely important for achieving high performance in application specific instruction set processors (ASIPs) and embedded processors. Existing techniques deal with either scheduling hardware pipelines to obtain higher throughput or software pipeline-an instruction scheduling technique for iterative computation-loops for exploiting greater ILP. We integrate these techniques to co-schedule hardware and software pipelines to achieve greater instruction throughput. In this paper, we develop the underlying theory of co-scheduling, called the Modulo-Scheduled Pipeline (or MS-Pipeline) theory. More specifically, we establish the necessary and sufficient condition for achieving the maximum throughput in a given pipeline operating under module scheduling. Further, we establish a sufficient condition to achieve a specified throughput, based on which we also develop a methodology for designing the hardware pipelines that achieve such a throughput. R. Govindarajan, Erik R. Altman, Guang R. Gao |
ASAP | 3 |
| 2000 | Developing a Communication Intensive Application on the EARTH Multithreaded Architecture (Distinguished Paper)
Kevin B. Theobald, Rishi Kumar, Gagan Agrawal, Gerd Heber, Ruppa K. Thulasiram, Guang R. Gao |
Euro-Par | 6 |
| 2000 | Automatic compiler techniques for thread coarsening for multithreaded architecturesabstractMultithreaded architectures are emerging as an important class of parallel machines. By allowing fast context switching between threads on the same processor, these systems hide communication and synchronization latencies and allow scalable parallelism for dynamic and irregular applications. Thread partitioning is the most important task in compiling high-level languages for multithreaded architectures. Non-preemptive multithreaded architectures, which can be built from off-the-shelf components, require that if a thread issues a potentially remote memory request, then any statement that is dependent upon this request must be in a separate thread. Gary M. Zoppetti, Gagan Agrawal, Lori L. Pollock, José Nelson Amaral, Xinan Tang, Guang R. Gao |
ICS | 6 |
| 2000 | Caching Single-Assignment Structures to Build a Robust Fine-Grain Multi-Threading SystemabstractWe present the design, implementation, and evaluation of single assignment data structures and of a software controlled cache in an existing multi-threaded architecture platform-the Efficient Architecture for Running Threads (EARTH). The software-controlled cache (ISSC) exploits temporal and spatial locality of EARTH split-phased memory transactions for single-assignment memory references. Our experimental evaluation indicates that the caching mechanism for single-assignment storage makes the EARTH memory system more robust to variations in the latency of memory operations. As a consequence the system can be ported to a wider range of machine platforms and deliver speedup for both regular and irregular application. Wen-Yen Lin, Jean-Luc Gaudiot, José Nelson Amaral, Guang R. Gao |
IPDPS | 4 |
| 2000 | Landing CG on EARTH: A Case Study of Fine-Grained Multithreading on an Evolutionary PathabstractWe report on our work in developing a fine-grained multithreaded solution for the communication-intensive Conjugate Gradient (CG) problem. In our recent work, we developed a simple yet efficient program for sparse matrix-vector multiply on a multi-threaded system. This paper presents an effective mechanism for the reduction-broadcast phase, which is integrated with the sparse MVM, resulting in a scalable implementation of the complete CG application. Three major observations from our experiments on the EARTH multithreaded testbed are: (1) The scalability of our CG implementation is impressive, e.g., absolute speedup is 90 on 120 processors for the NAS CG class B input. (2) Our dataflow-style reduction-broadcast network based on fine-grain multithreading is twice as fast as a serial reduction scheme on the same system. (3) By slowing down the network by a factor of 2, no notable degradation of overall CG performance was observed. Kevin B. Theobald, Gagan Agrawal, Rishi Kumar, Gerd Heber, Guang R. Gao, Paul Stodghill, Keshav Pingali |
SC | 5 |
| 2000 | Multithreaded algorithms for the fast Fourier transformabstractIn this paper we present fine-grained multithreaded algorithms and implementations for the Fast Fourier Transform (FFT) problem. The FFT problem has been formulated using two distinct approaches based on the dataflow concepts. The first approach, referred to as the receiver-initiated algorithm, realizes the FFAT iterations as a parent-child relationship while fully exploiting the underlying parallelism. The second approach, referred to as the sender-initiated algorithm, follows a data-flow model based on the producer-consumer style of programming and can be adopted to different architectural parameters for achieving high performance. The implementations of the proposed algorithms have been carried out on the EARTH (Efficient Architecture for Running THreads) platform. For both the algorithms, we analyze the ratio of remote vs local threads and study its impact on the experimental results. Our implementation results show that for certain block sizes on fixed problem size and machine size, the receiver-initiated approach performs better than the sender-initiated approach. For large number of processors, both the algorithms perform well, yielding execution times of only 10 msec for an input of 16 K data points on a 64 processor machine, assuming each processor running at 140 MHz clock speed. Parimala Thulasiraman, Kevin B. Theobald, Ashfaq Khokhar 0001, Guang R. Gao |
SPAA | 4 |
| 2000 | Self-Avoiding Walks over Adaptive Unstructured GridsabstractIn this paper, we present self-avoiding walks as a novel technique to ‘linearize’ an unstructured mesh. Unlike space-filling curves which are based on a geometric embedding, our strategy is combinatorial since it uses the mesh connectivity only. We formulate a linear time-complexity algorithm for the construction of these self-avoiding walks over a triangular mesh. We also show how the concept can be easily modified for adaptive grids that are generated in a hierarchical manner based on a set of simple rules, and made amenable for efficient parallelization. We suggest a metric that might be used to evaluate the quality of such walks and present some sample results. The proposed locality-enhancing approach should be very useful in the runtime partitioning and load balancing of adaptive unstructured grids. Copyright © 2000 John Wiley & Sons, Ltd. Gerd Heber, Rupak Biswas, Guang R. Gao |
Concurr. Pract. Exp. | 3 |
| 2000 | Location Consistency-A New Memory Model and Cache Consistency ProtocolabstractExisting memory models and cache consistency protocols assume the memory coherence property which requires that all processors observe the same ordering of write operations to the same location. In this paper, we address the problem of defining a memory model that does not rely on the memory coherence assumption and also the problem of designing a cache consistency protocol based on such a memory model. We define a new memory consistency model, called Location Consistency (LC), in which the state of a memory location is modeled as a partially ordered multiset (pomset) of write and synchronization operations. We prove that LC is strictly weaker than existing memory models, but is still equivalent to stronger models for the common case of parallel programs that have no data races. We also describe a new multiprocessor cache consistency protocol based on the LC memory model. We prove that this LC protocol obeys the LC memory model. The LC protocol does not need to enforce single write ownership of memory blocks. As a result, the LC protocol is simpler and more scalable than existing snooping and directory-based cache consistency protocols. Guang R. Gao, Vivek Sarkar |
IEEE Trans. Computers | 1 |
| 1999 | Efficient State-Diagram Construction Methods for Software Pipelining
Chihong Zhang, R. Govindarajan, Sean Ryan, Guang R. Gao |
CC | 4 |
| 1999 | Multithreaded Execution Architecture and Compilation
Dean M. Tullsen, Guang R. Gao |
HPCA | 2 |
| 1999 | Automatically Partitioning Threads for Multithreaded Architectures
Xinan Tang, Guang R. Gao |
J. Parallel Distributed Comput. | 2 |
| 1999 | Advances in the dataflow computational model
Walid A. Najjar, Edward A. Lee, Guang R. Gao |
Parallel Comput. | 3 |
| 1998 | A New Fast Algorithm for Optimal Register Allocation in Modulo Scheduled Loops
Sylvain Lelait, Guang R. Gao, Christine Eisenbeis |
CC | 2 |
| 1998 | Partial Sampling with Reverse State Reconstruction: A New Technique for Branch Predictor Performance EstimationabstractExploring the design space of branch predictors can consume tremendous computational resources. In order to mitigate this problem we present a new non-clustered sampling technique for rapidly evaluating the performance of a large number of branch predictors in a single rapid pass through a trace. The predictors studied in this single pass need not closely resemble one another. Each may use a radically different method of indexing into one or more arrays of two bit counters. In experiments with SPEC95 benchmarks we have found that while sampling on the order of one branch per every ten thousand we can typically produce correct results for all but a few hundredths of a percent of the branches in the sample. The only instances we have found where this is not the case are degenerate cases in which we show that full-trace modeling also fails to give accurate results. Our technique is based on a general approach we call partial sampling. Partial sampling maintains a generic data structure as it scans a trace. At selected sample points in the trace, this structure is queried to determine the behavior of particular operations. The sampled operations need not be clustered. Darren Erik Vengroff, Guang R. Gao |
HPCA | 2 |
| 1998 | Automatically Partitioning Threads Based on Remote PathsabstractIn order to program multithreaded architectures effectively, compiler support to automatically partition programs into threads is essential. This paper proposes a remote-path-based thread partitioning framework, which can generate low-level threads from procedural programs automatically. The framework has been implemented in the EARTH-C compiler, which uses a data dependence graph (DDG) as an intermediate representation for thread partitioning. To make the compiler work fast, a practical O(n/sup 2/) algorithm is designed to build a non-redundant DDG. To generate correct and efficient threaded code, the remote path heuristic is employed to satisfy thread partitioning constraints and to schedule threads to run quickly. Experimental results show that the DDG building algorithm is fast and the remote-path-based heuristic is very effective in partitioning programs into "optimized" threads. Xinan Tang, Guang R. Gao |
ICPADS | 2 |
| 1998 | How "Hard" is Thread Partitioning and How "Bad" is a List Scheduling Based Partitioning Algorithm?abstractArticle Free Access Share on How “hard” is thread partitioning and how “bad” is a list scheduling based partitioning algorithm? Authors: Xinan Tang Department of Electrical and Computer Engineering, University of Delaware, Newark, Delaware Department of Electrical and Computer Engineering, University of Delaware, Newark, DelawareView Profile , Guang R. Gao Department of Electrical and Computer Engineering, University of Delaware, Newark, Delaware Department of Electrical and Computer Engineering, University of Delaware, Newark, DelawareView Profile Authors Info & Claims SPAA '98: Proceedings of the tenth annual ACM symposium on Parallel algorithms and architecturesJune 1998 Pages 130–139https://doi.org/10.1145/277651.277679Published:01 June 1998Publication History 9citation731DownloadsMetricsTotal Citations9Total Downloads731Last 12 Months7Last 6 weeks1 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF Xinan Tang, Guang R. Gao |
SPAA | 2 |
| 1998 | A Unified Framework for Instruction Scheduling and Mapping for Function Units with Structural Hazards
Erik R. Altman, R. Govindarajan, Guang R. Gao |
J. Parallel Distributed Comput. | 3 |
| 1998 | A New Framework for Elimination-Based Data Flow Analysis Using DJ GraphsabstractIn this article, we present a new framework for elimination-based exhaustive and incremental data flow analysis using the DJ graph representation of a program.Unlike previous approaches to elimination-based incremental data flow analysis, our approach can handle arbitrary structural and nonstructural changes to program flowgraphs, including irreducibility.We show how our approach is related to dominance frontiers, and we exploit this relationship to establish the complexity of our exhaustive analysis and to aid the design of our incremental analysis. Vugranam C. Sreedhar, Guang R. Gao, Yong-Fong Lee |
ACM Trans. Program. Lang. Syst. | 2 |
| 1997 | Elastic History Buffer: A Low-Cost Method to Improve Branch Prediction AccuracyabstractTwo-level dynamic branch predictors try to predict the outcomes of conditional branches using both a table of state counters associated with specific branch instructions and a buffer of recent branch outcomes to correlate the counters with specific branch histories. However there is always a question of how much correlation to use, and some programs benefit from higher levels of correlation than others. This paper presents the Elastic History Buffer (EHB), a low-cost yet effective scheme that can exploit the property that each branch instruction may have a different degree of correlation with other branches, while keeping the simple structure of a single global branch history. We have simulated the EHB on SPECint92 for two architectures. On average, the EHB has 25% fewer mispredictions than fixed-correlation schemes and 10% fewer than frequency-based branch classification schemes. With limited hardware (1KB), the EHB is close to the optimum measured by repeating the experiments on an "oracle" two-level predictor. Maria-Dana Tarlescu, Kevin B. Theobald, Guang R. Gao |
ICCD | 3 |
| 1997 | Experiences with Non-numeric Applications on Multithreaded ArchitecturesabstractS.124-135 Angela C. Sodan, Guang R. Gao, Olivier Maquelin, Jens-Uwe Schultz, Xinmin Tian |
PPoPP | 2 |
| 1997 | Thread Partitioning and Scheduling Based on Cost ModelabstractThere has been considerable interest in implementing a multithreaded program execution and architecture model on a multiprocessor whose primary processors consist of today's off-the-shelf microprocessors. Unlike some custom-designed multithreaded processor architectures, which can interleave multiple threads concurrently, conventional processors can only execute one thread at a time. This presents a unique and challenging problem to the compiler: partition a program into threads so that it executes both correctly and in minimal time. We present a new heuristic algorithm based on an interesting extension of the classical list scheduling algorithm. Based on a cost model, our algorithm groups instructions into threads by considering the trade-offs among parallelism, latency tolerance, thread switching costs and sequential execution efficiency. The proposed algorithm has been implemented, and its performance measured through experiments on a variety of architecture parameters and a wide ra... Xinan Tang, Kevin B. Theobald, Guang R. Gao |
SPAA | 4 |
| 1997 | Incremental Computation of Dominator TreesabstractIn this article, we present a new algorithm for incrementally maintaining the dominator tree of an arbitrary flowgraph.Previous work most relevant to this article includes only the Carroll-Ryder algorithm and the Ramalingam-Reps algorithm.Both these methods are restricted to reducible flowgraphs.By contrast, our approach can handle irreducible as well as reducible flowgraphs.For the case where an edge is inserted, our incremental algorithm is also faster than previous incremental algorithms in the worst case.For the deletion case, our algorithm has a quadratic time complexity in the worst case. Vugranam C. Sreedhar, Guang R. Gao, Yong-Fong Lee |
ACM Trans. Program. Lang. Syst. | 2 |
| 1996 | Pipelining-Dovetailing: A Transformation to Enhance Software Pipelining for Nested Loops
Jian Wang 0046, Guang R. Gao |
CC | 2 |
| 1996 | Multithreading implementation of a distributed shortest path algorithm on EARTH multiprocessorabstractNetwork optimization refers to those optimization problems defined on weighted graphs. In general, the shortest path and max-flow problems have served as critical building blocks in formulating solutions to more complex network optimization problems. In this paper, as the first step in studying and evaluating implementations of network optimization problems on multithreaded multiprocessors, we present a multithreaded implementation of a distributed shortest path algorithm proposed by K.M. Chandy and J. Misra (1982) on the EARTH-MANNA multithreaded architecture, and discuss performance results on the ERTH-MANNA system. Parimala Thulasiraman, Xinmin Tian, Guang R. Gao |
HiPC | 3 |
| 1996 | Quantitive studies of data-locality sensitivity on the EARTH multithreaded architecture: preliminary resultsabstractMultithreading has been promoted as an effective mechanism to hide inter-processor communications and remote data access latencies by quickly switching among a set of ready threads. In this paper, we show that multitreading provides an immunity to the performance variations due to changes in data distributions in a distributed-memory multiprocessor. First, toe propose two performance metrics to quantify the sensitivity of performance to data-locality. Second, we perform a quantitative comparison of data-locality sensitivity with both single-threaded and multithreaded computations. These experiments are performed on a 20-node EARTH-MANNA system. Our results show that not only does a multithreaded computation yields higher performance than the single-threaded version, but also that its performance is more robust (less affected) by variations in data-locality. Xinmin Tian, Shashank S. Nemawarkar, Guang R. Gao, Herbert H. J. Hum, Olivier Maquelin, Angela C. Sodan, Kevin B. Theobald |
HiPC | 3 |
| 1996 | Co-Scheduling Hardware and Software PipelinesabstractIn this paper we propose co-scheduling, a framework for simultaneous design of hardware pipelines structures and software-pipelined schedules. Two important components of the co-scheduling framework are: (1) An extension to the analysis of hardware pipeline design that meets the needs of periodic (or software pipelined) schedules. Reservation tables, forbidden latencies, collision vectors, and state diagrams from classical pipeline theory are revisited and extended to solve the new problems. (2) An efficient method, based on the above extension of pipeline analysis, to perform (a) software pipeline scheduling and (b) hardware pipeline reconfiguration which are mutually "compatible". The proposed method has been implemented and preliminary experimental results for 1008 kernel loops are reported. Co-scheduling successfully obtains a schedule for 95% of these loops. The median time to obtain these schedules is 0.25 seconds on a Sparc-20. R. Govindarajan, Erik R. Altman, Guang R. Gao |
HPCA | 3 |
| 1996 | Polling Watchdog: Combining Polling and Interrupts for Efficient Message HandlingabstractParallel systems supporting multithreading, or message passing in general, have typically used either polling or interrupts to handle incoming messages. Neither approach is ideal; either may lead to excessive overheads or message-handling latencies, depending on the application. This paper investigates a combined approach---Polling Watchdog, where both are used depending on the circumstances. The Polling Watchdog is a simple hardware extension that limits the generation of interrupts to the cases where explicit polling fails to handle the message quickly. As an added benefit, this mechanism also has the potential to simplify the interaction between interrupts and the network accesses performed by the program.We present the resulting performance for the EARTH-MANNA-S system, an implementation of the EARTH (Efficient Architecture for Running THreads) execution model on the MANNA multiprocessor. In contrast to the original EARTH-MANNA system, this system does not use a dedicated communication processor. Rather, synchronization and communication tasks are performed on the same processor as the regular computations. Therefore, an efficient message-handling mechanism is essential to good performance. Simulation results and performance measurements show that the Polling Watchdog indeed performs better than either polling or interrupts alone. In fact, this mechanism allows the EARTH-MANNA-S system to achieve the same level of performance as the original EARTH-MANNA multithreaded system. Olivier Maquelin, Guang R. Gao, Herbert H. J. Hum, Kevin B. Theobald, Xinmin Tian |
ISCA | 2 |
| 1996 | Software Pipelining Showdown: Optimal vs. Heuristic Methods in a Production CompilerabstractThis paper is a scientific comparison of two code generation techniques with identical goals --- generation of the best possible software pipelined code for computers with instruction level parallelism. Both are variants of modulo scheduling, a framework for generation of software pipelines pioneered by Rau and Glaser [RaG181], but are otherwise quite dissimilar.One technique was developed at Silicon Graphics and is used in the MIPSpro compiler. This is the production compiler for SGI's systems which are based on the MIPS R8000 processor [Hsu94]. It is essentially a branch--and--bound enumeration of possible schedules with extensive pruning. This method is heuristic because of the way it prunes and also because of the interaction between register allocation and scheduling.The second technique aims to produce optimal results by formulating the scheduling and register allocation problem as an integrated integer linear programming (ILP1) problem. This idea has received much recent exposure in the literature [AlGoGa95, Feautrier94, GoAlGa94a, GoAlGa94b, Eichenberger95], but to our knowledge all previous implementations have been too preliminary for detailed measurement and evaluation. In particular, we believe this to be the first published measurement of runtime performance for ILP based generation of software pipelines.A particularly valuable result of this study was evaluation of the heuristic pipelining technology in the SGI compiler. One of the motivations behind the McGill research was the hope that optimal software pipelining, while not in itself practical for use in production compilers, would be useful for their evaluation and validation. Our comparison has indeed provided a quantitative validation of the SGI compiler's pipeliner, leading us to increased confidence in both techniques. John C. Ruttenberg, Guang R. Gao, Woody Lichtenstein, Arthur Stoutchinin |
PLDI | 2 |
| 1996 | A New Framework for Exhaustive and Incremental Data Flow Analysis Using DJ GraphsabstractWe present a new elimination-based framework for exhaustive and incremental data flow analysis using the DJ graph representation of a program. Unlike the previous approaches to elimination-based incremental data flow analysis, our approach can handle arbitrary non-structural and structural changes to program flowgraphs, including those causing irreducibility. We show how our approach is related to (iterated) dominance frontiers, and exploit this relationship to establish the complexity of our exhaustive analysis and to aid the design of our incremental analysis. Vugranam C. Sreedhar, Guang R. Gao, Yong-Fong Lee |
PLDI | 2 |
| 1996 | Identifying Loops Using DJ GraphsabstractLoop identification is a necessary step in loop transformations for high-performance architectures. One classical technique for detecting loops is Tarjan's interval-finding algorithm. The intervals identified by Tarjan's method are single-entry, strongly connected subgraphs that closely reflect a program's loop structure. We present a simple algorithm for identifying both reducible and irreducible loops using DJ graphs. Our method is a generalization of Tarjan's method, as it identifies nested intervals (or loops) even in the presence of irreducibility. Vugranam C. Sreedhar, Guang R. Gao, Yong-Fong Lee |
ACM Trans. Program. Lang. Syst. | 2 |
| 1996 | A Framework for Resource-Constrained Rate-Optimal Software PipeliningabstractThe rapid advances in high-performance computer architecture and compilation techniques provide both challenges and opportunities to exploit the rich solution space of software pipelined loop schedules. In this paper, we develop a framework to construct a software pipelined loop schedule which runs on the given architecture (with a fixed number of processor resources) at the maximum possible iteration rate (a la rate-optimal) while minimizing the number of buffers-a close approximation to minimizing the number of registers. The main contributions of this paper are: First, we demonstrate that such problem can be described by a simple mathematical formulation with precise optimization objectives under a periodic linear scheduling framework. The mathematical formulation provides a clear picture which permits one to visualize the overall solution space (for rate-optimal schedules) under different sets of constraints. Secondly, we show that a precise mathematical formulation and its solution does make a significant performance difference. We evaluated the performance of our method against three leading contemporary heuristic methods. Experimental results show that the method described in this paper performed significantly better than these methods. The techniques proposed in this paper are useful in two different ways: 1) As a compiler option which can be used in generating faster schedules for performance-critical loops (if the interested users are willing to trade the cost of longer compile time with faster runtime). 2) As a framework for compiler writers to evaluate and improve other heuristics-based approaches by providing quantitative information as to where and how much their heuristic methods could be further improved. R. Govindarajan, Erik R. Altman, Guang R. Gao |
IEEE Trans. Parallel Distributed Syst. | 3 |
| 1995 | A design study of the EARTH multiprocessor
Herbert H. J. Hum, Olivier Maquelin, Kevin B. Theobald, Xinmin Tian, Xinan Tang, Guang R. Gao, Phil Cupryk, Nasser Elmasri, Laurie J. Hendren, Alberto Jimenez, Shoba Krishnan, Andrés Márquez 0001, Shamir Merali, Shashank S. Nemawarkar, Prakash Panangaden, Xun Xue, Yingchun Zhu |
PACT | 6 |
| 1995 | Costs and Benefits of Multithreading with Off-the-Shelf RISC Processors
Olivier Maquelin, Herbert H. J. Hum, Guang R. Gao |
Euro-Par | 3 |
| 1995 | A Design Frame for Hybrid Access CachesabstractHigh-speed microprocessors need fast on-chip caches in order to keep busy. Direct-mapped caches have better access times than set-associative caches, but poorer miss rates. This has led to several hybrid on-chip caches combining the speed of direct-mapped caches with the hit rates of associative caches. In this paper, we unify these hybrids within a single framework which we call the hybrid access cache (HAC) model. Existing hybrid caches lie near the edges of the HAC design space, leaving the middle untouched. We study a group of caches in this middle region, a group we call half-and-half caches, which are half direct-mapped and half set-associative. Simulations confirm the predictive valve of the HAC model, and demonstrate that, for medium to large caches, this middle region yields more efficient cache designs.> Kevin B. Theobald, Herbert H. J. Hum, Guang R. Gao |
HPCA | 3 |
| 1995 | Location Consistency: Stepping Beyond the Memory Coherence Barrier
Guang R. Gao, Vivek Sarkar |
ICPP (2) | 1 |
| 1995 | The Threaded Communication Library: Preliminary Experiences on a Multiprocessor with Dual-Processor NodesabstractIn this paper, we introduce a user-level threads package called the Threaded CommunicationLibrary which provides primitives to support programs under a multi-threaded program execution model.We present some preliminary experiments compariug the performance of benchmarks using the dual-processor TCL implementation to a single-processor version in which all computation, synchronization, and communication are performed on one processor of a node.Our results indicate that: 1) for applications with highly asynchronous fine-grain communication demands, the dual-processor implementation can effectively overlap communication and computation for faster execution; and 2) with more regular communication requirements, the cache effect ou the computation processor should not be ignored.In some benchmark programs in which the data to be communicated between processors can be kept on the on-chip cache of the computation processor, the single processor version of TC L may yield better performance due to the avoided cache misses which the dualprocessor version encounters. Nasser Elmasri, Herbert H. J. Hum, Guang R. Gao |
International Conference on Supercomputing | 3 |
| 1995 | Exploiting short-lived variables in superscalar processorsabstractIn this paper we present experimental evidence showing that a significant number of program variables are short-lived in the sense that their live ranges span only a few instructions. In dynamically scheduled superscalar processors using mechanisms like the reorder buffer, the live ranges for these short-lived variables may occur entirely within the reorder buffer. Therefore, there should be no need to retire (commit) the values produced by these live ranges to the register file. On the basis of this observation, we have proposed a scheme that includes a compiler analysis and a simple architecture extension to avoid the useless commits of the values generated for these short-lived variables. Moreover we have proposed an extension to the existing register allocation mechanism that does not assign these short-lived variables to locations in the register file. Analyses and results are presented. Luis A. Lozano, Guang R. Gao |
MICRO | 2 |
| 1995 | Scheduling and Mapping: Software Pipelining in the Presence of Structural HazardsabstractRecently, software pipelining methods based on an ILP (Integer Linear Programming) framework have been successfully applied to derive rate-optimal schedules for architectures involving clean pipelines - pipelines without structural hazards. The problem for architectures beyond such clean pipelines remains open. One challenge is how, under a unified ILP framework, to simultaneously represent resource constraints for unclean pipelines, and the assignment or mapping of operations from a loop to those pipelines. In this paper we provide a framework which does exactly this, and in addition constructs rate-optimal software pipelined schedules. The proposed formulation and a solution method have been implemented and tested on a set of 1006 loops taken from various scientific and integer benchmark suites. The formulation found a rate-optimal schedule for 75% of the loops, and required a median time of only 2 seconds per loop on a Sparc 10/30. Erik R. Altman, R. Govindarajan, Guang R. Gao |
PLDI | 3 |
| 1995 | A Linear Time Algorithm for Placing phi-nodesabstractDataflow analysis framework based on Static Single Assignment (SSA) form and Sparse Evaluation Graphs (SEGs) demand fast computation of program points where data flow information must be merged, the so-called φ-nodes. In this paper, we present a surprisingly simple algorithm for computing φ-nodes for arbitrary flowgraphs (reducible or irreducible) that runs in linear time. We employ a novel program representation—the DJ graph—by augmenting the dominator tree of a flowgraph with edges which may lead to a potential “merge” of dataflow information. In searching for φ-nodes we never visit an edge in the DJ-graph more than once by guiding the search of nodes by their levels in the dominator tree. Vugranam C. Sreedhar, Guang R. Gao |
POPL | 2 |
| 1994 | Minimizing memory requirements in rate-optimal schedulesabstractWe address the problem of minimizing buffer storage requirement in constructing rate-optimal compile-time schedules for multi-rate dataflow graphs. We demonstrate that this problem, called the Minimum Buffer Rate-Optimal (MBRO) scheduling problem, con be formulated as a unified linear programming problem. A novel feature of the method is that it tries to minimize the memory requirement while simultaneously maximizing the computation rate. We have constructed an experimental testbed which implements our scheduling algorithm as well as: the widely used periodic admissible parallel schedules proposed by R.A. Lee and D.A. Messerschmitt (1987); the optimal scheduling buffer allocation (OSBA) algorithm of Q. Ning and G.R. Gao (1993); and the multi-rate software pipelining (MRSP) algorithm (R. Govinderajan and G.R. Gao, 1993). The experimental results have demonstrated a significant improvement in buffer requirements for the MBRO schedules compared to the schedules generated by the other three methods. Compared to block schedules, MBRO schedules perform better in terms of both computation rate and buffer requirements. The average observed improvement in buffer storage is 26% with respect to the MRSP algorithm, 17% with respect to block schedules and 5% with respect to the OSBA formulation.> R. Govindarajan, Guang R. Gao, Palash Desai |
ASAP | 2 |
| 1994 | Minimizing register requirements under resource-constrained rate-optimal software pipeliningabstractIn this paper we address the following software pipelining problem: given a loop and a machine architecture with a fixed number of processor resources (e.g. function units), how can one construct a software-pipelined schedule which runs on the given architecture at the maximum possible iteration rate (a` la rate-optimal) while minimizing the number of registers? R. Govindarajan, Erik R. Altman, Guang R. Gao |
MICRO | 3 |
| 1993 | A novel framework for multi-rate scheduling in DSP applicationsabstractThe authors present a novel framework for multi-rate scheduling of signal processing programs represented by regular stream flow graphs (RSFGs). The nodes of an RSFG may execute at different rates to avoid unbounded storage requirement under repetitive computation. A distinct feature of the scheduling framework, called the multi-rate software pipelining, is to allow maximum overlapping of operations from successive iterations subject only to precedence constraints caused by data dependencies. A novel framework based on linear programming techniques has been proposed to schedule RSFGs. The scheduling problem is formulated as a mathematical problem by capturing data dependencies between two actors as a precedence relation between the firing of these actors. The precedence relationships are represented in the form of a precedence graph. An efficient polynomial-time solution is obtained by observing that the computation rate of the optimal schedule is the minimum cost-to-time ratio cycle (MCTRC) in the precedence graph.> R. Govindarajan, Guang R. Gao |
ASAP | 2 |
| 1993 | Speculative Execution and Branch Prediction on Parallel MachinesabstractSeveral recent studies on the limits of parallelism have reported that speculative execution can substantially increase the amount of exploitable parallelism in programs, especially non-numerical programs. This is true even for parallel machines models which allow multiple flows of control. However, most architectural techniques for speculation and branch prediction are geared toward conventional computers with a single flow of control, and little has been done in studying speculation models and techniques for parallel machines with multiple threads of control. Kevin B. Theobald, Guang R. Gao, Laurie J. Hendren |
International Conference on Supercomputing | 2 |
| 1993 | A Novel Framework of Register Allocation for Software PipeliningabstractAlthough software pipelining has been proposed as one of the most important loop scheduling methods, simultaneous scheduling and register allocation is less understood and remains an open problem [28]. The objective of this paper is to develop a unified algorithmic framework for concurrent scheduling and register allocation to support time-optimal software pipelining. A key intuition leading to this surprisingly simple formulation and its efficient solution is the association of maximum computation rate of a program graph with its critical cycles due to Reiter's pioneering work on Karp-Miller computation graphs [29]. In particular, our method generalizes the work by Callahan, Carr and Kennedy on scalar expansion[6], the work by Lam on modular variable expansion for software pipelined loops [20], and the work by Rau et al. on register allocation for modulo scheduled loops[28]. Qi Ning, Guang R. Gao |
POPL | 2 |
| 1993 | Designing Programming Languages for the Analyzability of Pointer Data Structures
Laurie J. Hendren, Guang R. Gao |
Comput. Lang. | 2 |
| 1993 | An Efficient Hybrid Dataflow Architecture Modle
Guang R. Gao |
J. Parallel Distributed Comput. | 1 |
| 1993 | Special Issue on DataFlow and Multithreaded Architectures - Guest Editors' Introduction
Guang R. Gao, Jean-Luc Gaudiot, Lubomir F. Bic |
J. Parallel Distributed Comput. | 1 |
| 1992 | A Register Allocation Framework Based on Hierarchical Cyclic Interval Graphs
Laurie J. Hendren, Guang R. Gao, Erik R. Altman, Chandrika Mukerji |
CC | 2 |
| 1992 | Well-behaved dataflow programs for DSP computationabstractAccumulation of tokens on the arcs of a dataflow program operating on potentially infinite streams in a DSP computation leads to unbounded storage requirement. Compile-time techniques to determine the storage requirement are essential for efficient scheduling. A class of program graphs called regular stream flow graphs is studied. Restricting the construction to a set of construction rules facilitates compile-time predictability of storage requirement. Compared to existing methods, the model has a stronger verifiability, which is due to the structure of the well-constructed graphs.> Guang R. Gao, R. Govindarajan, Prakash Panangaden |
ICASSP | 1 |
| 1992 | Efficient Interprocessor Synchronization/Communication on a Dataflow Multiprocessor Architecture
Jean-Marc Monti, Guang R. Gao |
ICPP (1) | 2 |
| 1992 | On the limits of program parallelism and its smoothability
Kevin B. Theobald, Guang R. Gao, Laurie J. Hendren |
MICRO | 2 |
| 1992 | A high-speed memory organization for hybrid dataflow / von Neumann computing
Herbert H. J. Hum, Guang R. Gao |
Future Gener. Comput. Syst. | 2 |
| 1991 | Optimization of array accesses by collective loop transformationsabstractArticle Free Access Share on Optimization of array accesses by collective loop transformations Authors: Vivek Sarkar IBM Palo Alto Scientific Center, 1530 Page Mill Road, Palo Alto, CA IBM Palo Alto Scientific Center, 1530 Page Mill Road, Palo Alto, CAView Profile , Guang R. Gao School of Computer Science, McGill University, Montreal, Canada H3A 2A7 School of Computer Science, McGill University, Montreal, Canada H3A 2A7View Profile Authors Info & Claims ICS '91: Proceedings of the 5th international conference on SupercomputingJune 1991 Pages 194–205https://doi.org/10.1145/109025.109077Published:01 June 1991Publication History 38citation401DownloadsMetricsTotal Citations38Total Downloads401Last 12 Months24Last 6 weeks4 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF Vivek Sarkar, Guang R. Gao |
ICS | 2 |
| 1991 | A Timed Petri-Net Model for Fine-Grain Loop Schedulingabstractarticle Free Access Share on A timed Petri-net model for fine-grain loop scheduling Authors: Guang R. Gao School of Computer Science, McGill University, 3480 University, Montréal, Québec H3A 2A7 School of Computer Science, McGill University, 3480 University, Montréal, Québec H3A 2A7View Profile , Yue-Bong Wong School of Computer Science, McGill University, 3480 University, Montréal, Québec H3A 2A7 School of Computer Science, McGill University, 3480 University, Montréal, Québec H3A 2A7View Profile , Qi Ning School of Computer Science, McGill University, 3480 University, Montréal, Québec H3A 2A7 School of Computer Science, McGill University, 3480 University, Montréal, Québec H3A 2A7View Profile Authors Info & Claims ACM SIGPLAN NoticesVolume 26Issue 6June 1991 pp 204–218https://doi.org/10.1145/113446.113463Published:01 May 1991Publication History 41citation490DownloadsMetricsTotal Citations41Total Downloads490Last 12 Months23Last 6 weeks5 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF Guang R. Gao, Yue-Bong Wong, Qi Ning |
PLDI | 1 |
| 1991 | An efficient parallel algorithm for all pairs examinationabstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Publications Dept., ACM Inc., fax +1 (212) 869-0481, or ([email protected]). An Efficient Parallel Algorithm for All Pairs Examination Kevin B. Theobald Guang R. Gao School of Computer Science School of Computer Science McGill University McGill University Montr'eal, Qu'ebec H3A 2A7 Montr'eal, Qu'ebec H3A 2A7 [email protected] [email protected] Abstract This paper presents a parallel algorithm for the All Pairs Examination problem, which appears in many applications. This algorithm examines all pairs in a set of n 2 elements on n processors in n+1 computation steps. Each element resides in only one processor during each step. This method uses processor time optimally and requires fewer communication steps than previous algorithms, with minimal network traffic and low run-time overhead. The most ... Kevin B. Theobald, Guang R. Gao |
SC | 2 |
| 1990 | Towards efficient fine-grain software pipeliningabstractDataflow software pipelining was proposed as a means of structuring fine-grain parallelism and has been studied mostly under an idealized dataflow architecture model with infinite resources[9]. In this paper, we investigate the effects of software pipelining under realistic architecture models with finite resources. Our target architecture is the McGill Dataflow Architecture which employs conventional pipelined techniques to achieve fast instruction execution, while exploiting fine-grain parallelism via a data-driven instruction scheduler. To achieve optimal execution efficiency, the compiled code must be able to make a balanced use of both the parallelism in the instruction execution unit and the fine-grain synchronization power of the machine. Guang R. Gao, Herbert H. J. Hum, Yue-Bong Wong |
ICS | 1 |
| 1990 | Exploiting fine-grain parallelism on dataflow architectures
Guang R. Gao |
Parallel Comput. | 1 |
| 1989 | Algorithmic Aspects of Balancing Techniques for Pipelined Data Flow Code Generation
Guang R. Gao |
J. Parallel Distributed Comput. | 1 |
| 1988 | An efficient pipelined dataflow processor architectureabstractIt is demonstrated that the principles of pipelined instruction execution can be effectively applied in data-flow computers, yielding an architecture that avoids the main sources of pipeline gaps during program execution in many conventional designs. The processing element uses an architecture called argument-fetch data-flow architecture. It has two parts: a data-flow instruction scheduling unit (DISU) and a pipelined instruction processing unit (PIPU). The PIPU is an instruction processor that uses many conventional techniques to achieve fast pipelined operation. The DISU holds the data-flow signal graph of the collection of data-flow instructions allocated to the processing element and maintains a large pool of enabled instructions available for execution by the PIPU. The architecture provides a basis for achieving high performance for many scientific applications. The trial design and fabrication of an enable memory, a key component of the DISU, are reported.> Jack B. Dennis, Guang R. Gao |
SC | 2 |
| 1987 | A stability classification method and its application to pipelined solution of linear recurrences
Guang R. Gao |
Parallel Comput. | 1 |
| 1986 | A Pipelined Solution Method of Tridiagonal Linear Equation Systems
Guang R. Gao |
ICPP | 1 |
| 1986 | A Maximally Pipelined Tridiagonal Linear Equation Solver
Guang R. Gao |
J. Parallel Distributed Comput. | 1 |
| 1984 | Modeling the Weather with a Data Flow SupercomputerabstractData flow computers promise efficient parallel computation limited in speed only by data dependencies in the calculation being performed. At the Massachusetts Institute of Technology Laboratory for Computer Science, the Computation Structures Group is working to design practical data flow computers that can outperform conventional supercomputers. Since data flow computers differ radically in structure from conventional (sequential) computers, the projection of their performance must be done through analysis of specific computations. The performance improvement that data flow computers offer is shown for a NASA benchmark program that implements a global weather model. We present the structure of the weather code as expressed in VAL, a functional programming language designed by the Computation Structures Group, and develop the corresponding machine-level program structures for efficient execution on a data flow supercomputer. On the basis of this analysis, we specify the capacities of hardware units and the number of each type of unit required to achieve a twenty-fold improvement in performance for the weather simulation application. Jack B. Dennis, Guang R. Gao, Kenneth W. Todd |
IEEE Trans. Computers | 2 |
| 1983 | Maximum Pipelining of Array Operations on Static Data Flow Machine
Jack B. Dennis, Guang R. Gao |
ICPP | 2 |