Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Harold W. Cain

dblp:04/1921 · DBLP profile ↗
← Back
18ranked-venue papers
7as first author
0since 2021 · last 2018
—ORCID · none

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

Systems, architecture and hardware · 16 · 6 first-authorSoftware engineering, systems software and programming languages · 5 · 3 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
9 papers
Memory systems · 53% Processor architecture and microarchitecture · 22% Cloud and datacenter computing · 14%
Software engineering, system software, and programming languages
1 paper
Program analysis · 87% Compilers and program optimization · 13%

Topics — the 30 heaviest of 31, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Processor architecture and microarchitecture
value prediction
0.322017
Load value prediction via path-based address prediction: avoiding mispredictions due to conflicting stores · MICRO 2017
Correctly implementing value prediction in microprocessors that support multithreading or multiprocessing · MICRO 2001
Cloud and datacenter computing
virtualization
0.322013
RECAP: A region-based cure for the common cold (cache) · HPCA 2013
Cache restoration for highly partitioned virtualized systems · HPCA 2012
Memory systems
memory consistency
0.342013
Robust architectural support for transactional memory in the power architecture · ISCA 2013
Conditional Memory Ordering · ISCA 2006
Memory Ordering: A Value-Based Approach · ISCA 2004
Memory systems › memory bandwidth management
bandwidth partitioning
0.312017
PABST: Proportionally Allocated Bandwidth at the Source and Target · HPCA 2017
Processor architecture and microarchitecture › value prediction
load value prediction
0.312017
Load value prediction via path-based address prediction: avoiding mispredictions due to conflicting stores · MICRO 2017
Memory systems
memory bandwidth management
0.312017
PABST: Proportionally Allocated Bandwidth at the Source and Target · HPCA 2017
Memory systems
memory controller
0.312017
PABST: Proportionally Allocated Bandwidth at the Source and Target · HPCA 2017
Memory systems
cache
0.322017
RECAP: A region-based cure for the common cold (cache) · HPCA 2013
Load value prediction via path-based address prediction: avoiding mispredictions due to conflicting stores · MICRO 2017
Memory systems › cache
prefetching
0.222013
Cache restoration for highly partitioned virtualized systems · HPCA 2012
RECAP: A region-based cure for the common cold (cache) · HPCA 2013
Parallel and multicore computing › transactional memory
hardware transactional memory
0.212013
Robust architectural support for transactional memory in the power architecture · ISCA 2013
Parallel and multicore computing
transactional memory
0.212013
Robust architectural support for transactional memory in the power architecture · ISCA 2013
Memory systems › memory consistency › memory consistency model
weak memory model
0.212013
Robust architectural support for transactional memory in the power architecture · ISCA 2013
Memory systems
cache management
0.112012
Cache restoration for highly partitioned virtualized systems · HPCA 2012
Cloud and datacenter computing › virtualization › virtual machine management
virtual machine scheduling
0.112012
Cache restoration for highly partitioned virtualized systems · HPCA 2012
Program analysis › dynamic analysis › profiling
calling context profiling
0.112006
Accurate, efficient, and adaptive calling context profiling · PLDI 2006
Program analysis › dynamic analysis
profiling
0.112006
Accurate, efficient, and adaptive calling context profiling · PLDI 2006
Processor architecture and microarchitecture
instruction set architecture
0.012013
Robust architectural support for transactional memory in the power architecture · ISCA 2013
Processor architecture and microarchitecture
out-of-order execution
0.012004
Memory Ordering: A Value-Based Approach · ISCA 2004
Processor architecture and microarchitecture
multicore design
0.012012
Cache restoration for highly partitioned virtualized systems · HPCA 2012
Memory systems › memory consistency
memory consistency model
0.012001
Correctly implementing value prediction in microprocessors that support multithreading or multiprocessing · MICRO 2001
Processor architecture and microarchitecture › multithreading
simultaneous multithreading
0.012001
An Architectural Evaluation of Java TPC-W · HPCA 2001
Processor architecture and microarchitecture
speculative execution
0.012001
Correctly implementing value prediction in microprocessors that support multithreading or multiprocessing · MICRO 2001
Performance modeling and evaluation
workload characterization
0.012001
An Architectural Evaluation of Java TPC-W · HPCA 2001
Compilers and program optimization
interprocedural optimization
0.012006
Accurate, efficient, and adaptive calling context profiling · PLDI 2006
Parallel and multicore computing
synchronization
0.012006
Conditional Memory Ordering · ISCA 2006
Energy-efficient computing › low-power design
low-power processor design
0.012004
Memory Ordering: A Value-Based Approach · ISCA 2004
Processor architecture and microarchitecture
branch prediction
0.012001
An Architectural Evaluation of Java TPC-W · HPCA 2001
Memory systems › cache
cache behavior
0.012001
An Architectural Evaluation of Java TPC-W · HPCA 2001
Parallel and multicore computing › parallel computing
multiprocessing
0.012001
Correctly implementing value prediction in microprocessors that support multithreading or multiprocessing · MICRO 2001
Processor architecture and microarchitecture
multithreading
0.012001
Correctly implementing value prediction in microprocessors that support multithreading or multiprocessing · MICRO 2001

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

workload evaluation · 0.3pipeline flush reduction · 0.3hardware architecture design · 0.3confidence estimation · 0.3compression · 0.2block reuse filtering · 0.2architectural semantics · 0.2cycle-accurate simulation · 0.1stack walking · 0.1sampling · 0.1adaptive bursting · 0.1trace-driven simulation · 0.0architectural simulation · 0.0
YearPublicationVenuePosition
2018 SPF: Selective Pipeline Flush
abstract
Branch mispredictions are inevitable in modern processors, but their high penalty in power and performance can be alleviated by selectively flushing the pipeline. In this paper, we present a practical technique to opportunistically determine the presence of correct path instructions in the processor pipeline and preserve those instructions instead of throwing them away. In our experiments, selective pipeline flush reduced the fetched instruction count by 7% (up to 26%), while increasing the performance by 2% (up to 15%).
Vignyan Reddy Kothinti Naresh, Rami Sheikh, Arthur Perais, Harold W. Cain
ICCD4
2017 PABST: Proportionally Allocated Bandwidth at the Source and Target
abstract
Higher integration lowers total cost of ownership (TCO) in the data center by reducing equipment cost and lowering energy consumption. However, higher integration also makes it difficult to achieve guaranteed quality of service (QoS) for shared resources. Unlike many other resources, memory bandwidth cannot be finely controlled by software in existing systems. As a result, many systems running critical, bandwidth-sensitive applications remain underutilized to protect against bandwidth interference. In this paper, we propose a novel hardware architecture allowing practical, software-controlled partitioning of memory bandwidth. Proportionally Allocated Bandwidth at the Source and Target (PABST) precisely controls the bandwidth of applications by throttling request rates at the source and prioritizes requests at the target. We show that PABST is work conserving, such that excess bandwidth beyond the requested allocation will not go unused. For applications sensitive to memory latency, we pair PABST with a simple priority scheme at the memory controller. We show that when combined, the system is able to lower TCO by providing performance isolation across a wide range of workloads, even when co-located with memory-intensive background jobs.
Derek Hower, Harold W. Cain, Carl A. Waldspurger
HPCA2
2017 Load value prediction via path-based address prediction: avoiding mispredictions due to conflicting stores
abstract
Current flagship processors excel at extracting instruction-level-parallelism (ILP) by forming large instruction windows. Even then, extracting ILP is inherently limited by true data dependencies. Value prediction was proposed to address this limitation. Many challenges face value prediction, in this work we focus on two of them. Challenge #1: store instructions change the values in memory, rendering the values in the value predictor stale, and resulting in value mispredictions and a retraining penalty. Challenge #2: value mispredictions trigger costly pipeline flushes. To minimize the number of pipeline flushes, value predictors employ stringent, yet necessary, high confidence requirements to guarantee high prediction accuracy. Such requirements can negatively impact training time and coverage.
Rami Sheikh, Harold W. Cain, Raguram Damodaran
MICRO2
2013 RECAP: A region-based cure for the common cold (cache)
abstract
Virtualization has become a magic bullet to increase utilization, improve security, lower costs, and reduce management overheads. In many scenarios, the number of virtual machines consolidated onto a single processor has grown even faster than the number of hardware threads. This results in multiprogrammed virtualization where many virtual machines time-share a single processor core. Such fine-grain sharing comes at a cost; each time a virtual machine gets scheduled by the hypervisor, it effectively begins with a “cold” cache, since any cache blocks it accessed in the past have likely been evicted by other virtual machines. Recently, cache restoration prefetchers have been shown to reduce the cold cache effects caused by multiprogrammed virtualization. However, these prefetchers waste large amounts of bandwidth prefetching many useless blocks and writing and reading metadata to and from memory. Using block reuse based filtering, we enhance two existing cache restoration prefetchers and reduce their bandwidth overheads by 16% and 32%, with slowdowns of only 0.5% and 0.6%. We also propose a Region-Based Cache Restoration Prefetcher (RECAP), which groups cache blocks into coarse-grain regions of memory, and predicts which regions contain useful blocks to prefetch the next time the current virtual machine executes. Based on these predictions, and using a simple compression technique that exploits spatial locality, RECAP provides a robust prefetcher that improves performance by up to 42% for some applications and only uses 14% more bandwidth and 3.5% more power than a stride prefetcher, on average. Compared to other prefetchers designed for multiprogrammed virtualization, RECAP provides comparable performance while using an average of 12% to 27% less bandwidth, and reducing the energy-delay product of the L2 cache and main memory by 12% to 13% on average.
Jason Zebchuk, Harold W. Cain, Xin Tong 0005, Vijayalakshmi Srinivasan, Andreas Moshovos
HPCA2
2013 Robust architectural support for transactional memory in the power architecture
abstract
On the twentieth anniversary of the original publication [10], following ten years of intense activity in the research literature, hardware support for transactional memory (TM) has finally become a commercial reality, with HTM-enabled chips currently or soon-to-be available from many hardware vendors. In this paper we describe architectural support for TM added to a future version of the Power ISA™. Two imperatives drove the development: the desire to complement our weakly-consistent memory model with a more friendly interface to simplify the development and porting of multithreaded applications, and the need for robustness beyond that of some early implementations. In the process of commercializing the feature, we had to resolve some previously unexplored interactions between TM and existing features of the ISA, for example translation shootdown, interrupt handling, atomic read-modify-write primitives, and our weakly consistent memory model. We describe these interactions, the overall architecture, and discuss the motivation and rationale for our choices of architectural semantics, beyond what is typically found in reference manuals.
Harold W. Cain, Maged M. Michael, Brad Frey, Cathy May, Derek Williams, Hung Q. Le
ISCA1
2012 ReCaP: a region-based cure for the common cold cache
abstract
No abstract available.
Jason Zebchuk, Harold W. Cain, Vijayalakshmi Srinivasan, Andreas Moshovos
PACT2
2012 Cache restoration for highly partitioned virtualized systems
abstract
The economics of server consolidation have led to the support of virtualization features in almost all server-class systems, with the related feature set being a subject of significant competition. While most systems allow for partitioning at the relatively coarse grain of a single core, some systems also support multiprogrammed virtualization, whereby a system can be more finely partitioned through time-sharing, down to a percentage of a core being allotted to a virtual machine. When multiple virtual machines share a single core however, performance can suffer due to the displacement of microarchitectural state. We introduce cache restoration, a hardware-based prefetching mechanism initiated by the underlying virtualization software when a virtual machine is being scheduled on a core, prefetching its working set and warming its initial environment. Through cycle-accurate simulation of a POWER7 system, we show that when applied to its private per-core L3 last-level cache, the warm cache translates into 20% on average performance improvement for a mixture of workloads on a highly partitioned core, compared to a virtualized server without cache restoration.
David Daly, Harold W. Cain
HPCA2
2010 Runahead execution vs. conventional data prefetching in the IBM POWER6 microprocessor
abstract
After many years of prefetching research, most commercially available systems support only two types of prefetching: software-directed prefetching and hardware-based prefetchers using simple sequential or stride-based prefetching algorithms. More sophisticated prefetching proposals, despite promises of improved performance, have not been adopted by industry. In this paper, we explore the efficacy of both hardware and software prefetching in the context of an IBM POWER6 commercial server. Using a variety of applications that have been compiled with an aggressively optimizing compiler to use software prefetching when appropriate, we perform the first study of a new runahead prefetching feature adopted by the POWER6 design, evaluating it in isolation and in conjunction with a conventional hardware-based sequential stream prefetcher and compiler-inserted software prefetching. We find that the POWER6 implementation of runahead prefetching is quite effective on many of the memory intensive applications studied; in isolation it improves performance as much as 36% and on average 10%. However, it outperforms the hardware-based stream prefetcher on only two of the benchmarks studied, and in those by a small margin. When used in conjunction with the conventional prefetching mechanisms, the runahead feature adds an additional 6% on average, and 39% in the best case (GemsFDTD).
Harold W. Cain, Priya Nagpurkar
ISPASS1
2009 Compiler and runtime techniques for software transactional memory optimization
abstract
Abstract Software transactional memory (STM) systems are an attractive environment to evaluate optimistic concurrency. We describe our experience of supporting and optimizing an STM system at both the managed runtime and compiler levels. We describe the design policies of our STM system and the statistics collected by the runtime to identify performance bottlenecks and guide tuning decisions. We present an initial work on supporting automatic instrumentation of the STM primitives for C/C++ and Java programs in the IBM XL compiler and J9 Java virtual machine. We evaluate and discuss the performance of several transactional programs running on our system. Copyright © 2008 John Wiley & Sons, Ltd.
Peng Wu 0001, Maged M. Michael, Christoph von Praun, Takuya Nakaike, Rajesh Bordawekar, Harold W. Cain, Calin Cascaval, Siddhartha Chatterjee, Stefanie Chiras, Mark F. Mergen, Michael F. Spear, Huayong Wang
Concurr. Comput. Pract. Exp.6
2007 Call-chain Software Instruction Prefetching in J2EE Server Applications
Priya Nagpurkar, Harold W. Cain, Mauricio J. Serrano, Jong-Deok Choi, Chandra Krintz
PACT2
2006 Conditional Memory Ordering
abstract
Conventional relaxed memory ordering techniques follow a proactive model: at a synchronization point, a processor makes its own updates to memory available to other processors by executing a memory barrier instruction, ensuring that recent writes have been ordered with respect to other processors in the system. We show that this model leads to superfluous memory barriers in programs with acquire-release style synchronization, and present a combined hardware/software synchronization mechanism called conditional memory ordering (CMO) that reduces memory ordering overhead. CMO is demonstrated on a lock algorithm that identifies those dynamic lock/unlock operations for which memory ordering is unnecessary, and speculatively omits the associated memory ordering instructions. When ordering is required, this algorithm relies on a hardware mechanism for initiating a memory ordering operation on another processor. Based on evaluation using a software-only CMO prototype, we show that CMO avoids memory ordering operations for the vast majority of dynamic acquire and release operations across a set of multithreaded Java workloads, leading to significant speedups for many. However, performance improvements in the software prototype are hindered by the high cost of remote memory ordering. Using empirical data, we construct an analytical model demonstrating the benefits of a combined hardware-software implementation
Christoph von Praun, Harold W. Cain, Jong-Deok Choi, Kyung Dong Ryu
ISCA2
2006 Accurate, efficient, and adaptive calling context profiling
abstract
Calling context profiles are used in many inter-procedural code optimizations and in overall program understanding. Unfortunately, the collection of profile information is highly intrusive due to the high frequency of method calls in most applications. Previously proposed calling-context profiling mechanisms consequently suffer from either low accuracy, high overhead, or both. We have developed a new approach for building the calling context tree at runtime, called adaptive bursting. By selectively inhibiting redundant profiling, this approach dramatically reduces overhead while preserving profile accuracy. We first demonstrate the drawbacks of previously proposed calling context profiling mechanisms. We show that a low-overhead solution using sampled stack-walking alone is less than 50% accurate, based on degree of overlap with a complete calling-context tree. We also show that a static bursting approach collects a highly accurate profile, but causes an unacceptable application slowdown. Our adaptive solution achieves 85% degree of overlap and provides an 88% hot-edge coverage when using a 0.1 hot-edge threshold, while dramatically reducing overhead compared to the static bursting approach.
Xiaotong Zhuang, Mauricio J. Serrano, Harold W. Cain, Jong-Deok Choi
PLDI3
2004 Memory Ordering: A Value-Based Approach
abstract
Conventional out-of-order processors employ a multi-ported, fully-associative load queue to guarantee correct memory reference order both within a single thread of execution and across threads in a multiprocessor system. As improvements in process technology and pipelining lead to higher clock frequencies, scaling this complex structure to accommodate a larger number of in-flight loads becomes difficult if not impossible. Furthermore, each access to this complex structure consumes excessive amounts of energy. In this paper, we solve the associative load queue scalability problem by completely eliminating the associative load queue. Instead, data dependences and memory consistency constraints are enforced by simply reexecuting load instructions in program order prior to retirement. Using heuristics to filter the set of loads that must be re-executed, we show that our replay-based mechanism enables a simple, scalable, and energy-efficient FIFO load queue design with no associative lookup functionality, while sacrificing only a negligible amount of performance and cache bandwidth.
Harold W. Cain, Mikko H. Lipasti
ISCA1
2002 Verifying sequential consistency using vector clocks
abstract
We present an algorithm for dynamically verifying that the execution of a multithreaded program is sequentially consistent. The algorithm uses a vector-timestamp logical time mechanism to construct and verify the acyclic nature of an execution's constraint graph.
Harold W. Cain, Mikko H. Lipasti
SPAA1
2002 A callgraph-based search strategy for automated performance diagnosis
abstract
Abstract We introduce a new technique for automated performance diagnosis, using the program's callgraph. We discuss our implementation of this diagnosis technique in the Paradyn Performance Consultant. Our implementation includes the new search strategy and new dynamic instrumentation to resolve pointer‐based dynamic call sites at run‐time. We compare the effectiveness of our new technique to the previous version of the Performance Consultant for several sequential and parallel applications. Our results show that the new search method performs its search while inserting dramatically less instrumentation into the application, resulting in reduced application perturbation and consequently a higher degree of diagnosis accuracy. Copyright © 2002 John Wiley & Sons, Ltd.
Harold W. Cain, Barton P. Miller, Brian J. N. Wylie
Concurr. Comput. Pract. Exp.1
2001 An Architectural Evaluation of Java TPC-W
abstract
The use of the Java programming language for implementing server-side application logic is increasingly in popularity yet there is very little known about the architectural requirements of this emerging commercial workload. We present a detailed characterization of the Transaction Processing Council's TPC-W web benchmark, implemented in Java. The TPC-W benchmark is designed to exercise the web server and transaction processing system of a typical e-commerce web site. We have implemented TPC-W as a collection of Java servlets, and present an architectural study detailing the memory system and branch predictor behavior of the workload. We also evaluate the effectiveness of a coarse-grained multithreaded processor at increasing system throughput using TPC-W and other commercial workloads. We measure system throughput improvements from 8% to 41% for a two context processor, and 12% to 60% for a four context uniprocessor over a single-threaded uniprocessor despite decreased branch prediction accuracy and cache hit rates.
Harold W. Cain, Ravi Rajwar, Morris Marden, Mikko H. Lipasti
HPCA1
2001 Correctly implementing value prediction in microprocessors that support multithreading or multiprocessing
abstract
This paper explores the interaction of value prediction with thread-level parallelism techniques, including multithreading and multiprocessing, where correctness is defined by a memory consistency model. Value prediction subtly interacts with the memory consistency model by allowing data dependent instructions to be reordered We find that predicting a value and later verifying that the value eventually calculated is the same as the value predicted is not always sufficient. We present an example of a multithreaded pointer manipulation that can generate a surprising and erroneous result when value prediction is implemented without considering memory consistency correctness. We show that this problem can occur with real software, and we discuss how to apply existing techniques to eliminate the problem in both sequentially consistent systems and systems that obey relaxed memory consistency models.
Milo M. K. Martin, Daniel J. Sorin, Harold W. Cain, Mark D. Hill, Mikko H. Lipasti
MICRO3
2000 A Callgraph-Based Search Strategy for Automated Performance Diagnosis (Distinguished Paper)
Harold W. Cain, Barton P. Miller, Brian J. N. Wylie
Euro-Par1