VLDB 2026 Research / reviewers in the wild / expert
Glenn H. Holloway
dblp:72/6863
· DBLP profile ↗
11ranked-venue papers
0as first author
0since 2021 · last 2015
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 8Systems, architecture and hardware · 5Databases, data management, data science and information retrieval · 1Theory of computation · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Parallel and multicore computing · 68% Energy-efficient computing · 22% Processor architecture and microarchitecture · 10% | |
| Software engineering, system software, and programming languages
6 papers |
Compilers and program optimization · 96% Runtime systems and virtual machines · 2% Program verification · 1% |
Topics — the 12 heaviest of 13, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Parallel and multicore computing › parallel programming models
automatic parallelization |
0.1 | 1 | 2012 | The HELIX project: overview and directions · DAC 2012 |
Parallel and multicore computing
thread-level parallelism |
0.1 | 1 | 2012 | The HELIX project: overview and directions · DAC 2012 |
Energy-efficient computing
power management |
0.1 | 1 | 2009 | Voltage emergency prediction: Using signatures to reduce operating margins · HPCA 2009 |
Compilers and program optimization › register allocation
graph coloring register allocation |
0.1 | 2 | 2004 | A generalized algorithm for graph-coloring register allocation · PLDI 2004 Quality and Speed in Linear-scan Register Allocation · PLDI 1998 |
Compilers and program optimization
register allocation |
0.1 | 2 | 2004 | A generalized algorithm for graph-coloring register allocation · PLDI 2004 Quality and Speed in Linear-scan Register Allocation · PLDI 1998 |
Processor architecture and microarchitecture
multicore design |
0.0 | 1 | 2012 | The HELIX project: overview and directions · DAC 2012 |
Compilers and program optimization › register allocation
linear scan register allocation |
0.0 | 1 | 1998 | Quality and Speed in Linear-scan Register Allocation · PLDI 1998 |
Runtime systems and virtual machines
dynamic compilation |
0.0 | 1 | 1998 | Quality and Speed in Linear-scan Register Allocation · PLDI 1998 |
Program verification › refinement
program refinement |
0.0 | 2 | 1981 | Program Refinement by Transsformation · ICSE 1981 A System for Program Refinement · ICSE 1979 |
Program analysis
static analysis |
0.0 | 1 | 1979 | Symbolic Evaluation and the Analysis of Programs · IEEE Trans. Software Eng. 1979 |
Program analysis
symbolic execution |
0.0 | 1 | 1979 | Symbolic Evaluation and the Analysis of Programs · IEEE Trans. Software Eng. 1979 |
Program analysis › data flow analysis
path-sensitive analysis |
0.0 | 1 | 1979 | Symbolic Evaluation and the Analysis of Programs · IEEE Trans. Software Eng. 1979 |
Methods — techniques the papers use, named apart from their topics
adaptive parallelization algorithms · 0.3HELIX compiler transformation · 0.3simulation · 0.1signature-based prediction · 0.1graph coloring · 0.1linear sweep · 0.0program transformation · 0.0symbolic evaluation · 0.0recurrence relation solving · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2015 | HELIX-UP: relaxing program semantics to unleash parallelizationabstractAutomatic generation of parallel code for general-purpose commodity processors is a challenging computational problem. Nevertheless, there is a lot of latent thread-level parallelism in the way sequential programs are actually used. To convert latent parallelism into performance gains, users may be willing to compromise on the quality of a program's results. We have developed a parallelizing compiler and runtime that substantially improve scalability by allowing parallelized code to briefly sidestep strict adherence to language semantics at run time. In addition to boosting performance, our approach limits the sensitivity of parallelized code to the parameters of target CPUs (such as core-to-core communication latency) and the accuracy of data dependence analysis. Simone Campanoni, Glenn H. Holloway, Gu-Yeon Wei, David Brooks 0001 |
CGO | 2 |
| 2012 | HELIX: automatic parallelization of irregular programs for chip multiprocessingabstractWe describe and evaluate HELIX, a new technique for automatic loop parallelization that assigns successive iterations of a loop to separate threads. We show that the inter-thread communication costs forced by loop-carried data dependences can be mitigated by code optimization, by using an effective heuristic for selecting loops to parallelize, and by using helper threads to prefetch synchronization signals. We have implemented HELIX as part of an optimizing compiler framework that automatically selects and parallelizes loops from general sequential programs. The framework uses an analytical model of loop speedups, combined with profile data, to choose loops to parallelize. On a six-core Intel® Core i7-980X, HELIX achieves speedups averaging 2.25 x, with a maximum of 4.12x, for thirteen C benchmarks from SPEC CPU2000. Simone Campanoni, Timothy M. Jones 0001, Glenn H. Holloway, Vijay Janapa Reddi, Gu-Yeon Wei, David Brooks 0001 |
CGO | 3 |
| 2012 | The HELIX project: overview and directionsabstractParallelism has become the primary way to maximize processor performance and power efficiency. But because creating parallel programs by hand is difficult and prone to error, there is an urgent need for automatic ways of transforming conventional programs to exploit modern multicore systems. The HELIX compiler transformation is one such technique that has proven effective at parallelizing individual sequential programs automatically for a real six-core processor. We describe that transformation in the context of the broader HELIX research project, which aims to optimize the throughput of a multicore processor by coordinated changes in its architecture, its compiler, and its operating system. The goal is to make automatic parallelization mainstream in multiprogramming settings through adaptive algorithms for extracting and tuning thread-level parallelism. Simone Campanoni, Timothy M. Jones 0001, Glenn H. Holloway, Gu-Yeon Wei, David Brooks 0001 |
DAC | 3 |
| 2009 | An event-guided approach to reducing voltage noise in processorsabstractSupply voltage fluctuations that result from inductive noise are increasingly troublesome in modern microprocessors. A voltage ldquoemergencyrdquo, i.e., a swing beyond tolerable operating margins, jeopardizes the safe and correct operation of the processor. Techniques aimed at reducing power consumption, e.g., by clock gating or by reducing nominal supply voltage, exacerbate this noise problem, requiring ever-wider operating margins. We propose an event-guided, adaptive method for avoiding voltage emergencies, which exploits the fact that most emergencies are correlated with unique microarchitectural events, such as cache misses or the pipeline flushes that follow branch mispredictions. Using checkpoint and rollback to handle unavoidable emergencies, our method adapts dynamically by learning to trigger avoidance mechanisms when emergency-prone events recur. After tightening supply voltage margins to increase clock frequency and accounting for all costs, the net result is a performance improvement of 8% across a suite of fifteen SPEC CPU2000 benchmarks. Meeta Sharma Gupta, Vijay Janapa Reddi, Glenn H. Holloway, Gu-Yeon Wei, David Brooks 0001 |
DATE | 3 |
| 2009 | Voltage emergency prediction: Using signatures to reduce operating marginsabstractInductive noise forces microprocessor designers to sacrifice performance in order to ensure correct and reliable operation of their designs. The possibility of wide fluctuations in supply voltage means that timing margins throughout the processor must be set pessimistically to protect against worst-case droops and surges. While sensor-based reactive schemes have been proposed to deal with voltage noise, inherent sensor delays limit their effectiveness. Instead, this paper describes a voltage emergency predictor that learns the signatures of voltage emergencies (the combinations of control flow and microarchitectural events leading up to them) and uses these signatures to prevent recurrence of the corresponding emergencies. In simulations of a representative superscalar microprocessor in which fluctuations beyond 4% of nominal voltage are treated as emergencies (an aggressive configuration), these signatures can pinpoint the likelihood of an emergency some 16 cycles ahead of time with 90% accuracy. This lead time allows machines to operate with much tighter voltage margins (4% instead of 13%) and up to 13.5% higher performance, which closely approaches the 14.2% performance improvement possible with an ideal oracle-based predictor. Vijay Janapa Reddi, Meeta Sharma Gupta, Glenn H. Holloway, Gu-Yeon Wei, Michael D. Smith 0001, David Brooks 0001 |
HPCA | 3 |
| 2004 | A generalized algorithm for graph-coloring register allocationabstractGraph-coloring register allocation is an elegant and extremely popular optimization for modern machines. But as currently formulated, it does not handle two characteristics commonly found in commercial architectures. First, a single register name may appear in multiple register classes, where a class is a set of register names that are interchangeable in a particular role. Second, multiple register names may be aliases for a single hardware register. We present a generalization of graph-coloring register allocation that handles these problematic characteristics while preserving the elegance and practicality of traditional graph coloring. Our generalization adapts easily to a new target machine, requiring only the sets of names in the register classes and a map of the register aliases. It also drops easily into a well-known graph-coloring allocator, is efficient at compile time, and produces high-quality code. Categories and subject descriptors D.3.4 [Programming Languages]: Processors—code generation, compilers, optimization, retargetable compilers; G.2.2 [Discrete Michael D. Smith 0001, Norman Ramsey, Glenn H. Holloway |
PLDI | 3 |
| 1998 | Quality and Speed in Linear-scan Register AllocationabstractA linear-scan algorithm directs the global allocation of register candidates to registers based on a simple linear sweep over the program being compiled. This approach to register allocation makes sense for systems, such as those for dynamic compilation, where compilation speed is important. In contrast, most commercial and research optimizing compilers rely on a graph-coloring approach to global register allocation. In this paper, we compare the performance of a linear-scan method against a modern graph-coloring method. We implement both register allocators within the Machine SUIF extension of the Stanford SUIF compiler system. Experimental results show that linear scan is much faster than coloring on benchmarks with large numbers of register candidates. We also describe improvements to the linear-scan approach that do not change its linear character, but allow it to produce code of a quality near to that produced by graph coloring. Omri Traub, Glenn H. Holloway, Michael D. Smith 0001 |
PLDI | 2 |
| 1981 | Program Refinement by Transsformation
Thomas E. Cheatham Jr., Glenn H. Holloway, Judy A. Townley |
ICSE | 2 |
| 1979 | A System for Program Refinement
Thomas E. Cheatham Jr., Judy A. Townley, Glenn H. Holloway |
ICSE | 3 |
| 1979 | Abstract FOR-Loops Over Several Aggregates
Felix J. Fridman, Glenn H. Holloway, Naftaly H. Minsky, Josef Stein |
Inf. Process. Lett. | 2 |
| 1979 | Symbolic Evaluation and the Analysis of ProgramsabstractSymbolic evaluation is a form of static program analysis in which symbolic expressions are used to denote the values of program variables and computations. It does not require the user to specify which path at a conditional branch to follow nor how many cycles of a loop to consider. Instead, a symbolic evaluator uses conditional expressions to represent the uncertainty that arises from branching and develops and attempts to solve recurrence relations that describe the behavior of loop variables. Thomas E. Cheatham Jr., Glenn H. Holloway, Judy A. Townley |
IEEE Trans. Software Eng. | 2 |