Demo Data from SIGIR 2026 / reviewers in the wild / expert
Kourosh Gharachorloo
dblp:79/3674
· DBLP profile ↗
27ranked-venue papers
7as first author
0since 2021 · last 2006
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 26 · 7 first-authorSoftware engineering, systems software and programming languages · 17 · 4 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
21 papers |
Memory systems · 45% Performance modeling and evaluation · 15% Processor architecture and microarchitecture · 14% | |
| Software engineering, system software, and programming languages
3 papers |
Compilers and program optimization · 46% Operating systems · 28% Concurrent programming · 26% |
Topics — the 30 heaviest of 48, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Memory systems
cache coherence |
0.1 | 7 | 2000 | Architecture and design of AlphaServer GS320 · ASPLOS 2000 Flexible Use of Memory for Replication/Migration in Cache-Coherent DSM Multiprocessors · ISCA 1998 Integration of Message Passing and Shared Memory in the Stanford FLASH Multiprocessor · ASPLOS 1994 |
Memory systems › shared memory
distributed shared memory |
0.1 | 4 | 1999 | Comparative Evaluation of Fine- and Coarse-Grain Approaches for Software Distributed Shared Memory · HPCA 1999 Fine-Grain Software Distributed Shared Memory on SMP Clusters · HPCA 1998 Towards Transparent and Efficient Software Distributed Shared Memory · SOSP 1997 |
Memory systems › shared memory › distributed shared memory
software distributed shared memory |
0.1 | 4 | 1999 | Comparative Evaluation of Fine- and Coarse-Grain Approaches for Software Distributed Shared Memory · HPCA 1999 Fine-Grain Software Distributed Shared Memory on SMP Clusters · HPCA 1998 Towards Transparent and Efficient Software Distributed Shared Memory · SOSP 1997 |
Distributed systems
fault tolerance |
0.1 | 1 | 2006 | ReViveI/O: efficient handling of I/O in highly-available rollback-recovery servers · HPCA 2006 |
Distributed systems › fault tolerance
rollback recovery |
0.1 | 1 | 2006 | ReViveI/O: efficient handling of I/O in highly-available rollback-recovery servers · HPCA 2006 |
Performance modeling and evaluation
workload characterization |
0.1 | 4 | 2001 | Memory System Characterization of Commercial Workloads · ISCA 1998 Performance of Database Workloads on Shared-Memory Systems with Out-of-Order Processors · ASPLOS 1998 Code layout optimizations for transaction processing workloads · ISCA 2001 |
Memory systems › memory consistency
memory consistency model |
0.1 | 4 | 2000 | Architecture and design of AlphaServer GS320 · ASPLOS 2000 Hiding Memory Latency using Dynamic Scheduling in Shared-Memory Multiprocessors · ISCA 1992 Performance Evaluation of Memory Consistency Models for Shared Memory Multiprocessors · ASPLOS 1991 |
Memory systems › memory hierarchy
cache hierarchy |
0.0 | 2 | 2000 | Impact of Chip-Level Integration on Performance of OLTP Workloads · HPCA 2000 Piranha: a scalable architecture based on single-chip multiprocessing · ISCA 2000 |
Processor architecture and microarchitecture
multiprocessor architecture |
0.0 | 4 | 2000 | The Stanford FLASH Multiprocessor · ISCA 1994 The Performance Impact of Flexibility in the Stanford FLASH Multiprocessor · ASPLOS 1994 Architecture and design of AlphaServer GS320 · ASPLOS 2000 |
Memory systems › cache coherence
directory-based coherence |
0.0 | 2 | 2000 | Architecture and design of AlphaServer GS320 · ASPLOS 2000 The Directory-Based Cache Coherence Protocol for the DASH Multiprocessor · ISCA 1990 |
Compilers and program optimization
code layout optimization |
0.0 | 1 | 2001 | Code layout optimizations for transaction processing workloads · ISCA 2001 |
Processor architecture and microarchitecture
chip multiprocessor |
0.0 | 1 | 2000 | Piranha: a scalable architecture based on single-chip multiprocessing · ISCA 2000 |
Performance modeling and evaluation › simulation › architectural simulation
full-system simulation |
0.0 | 1 | 2000 | Impact of Chip-Level Integration on Performance of OLTP Workloads · HPCA 2000 |
Performance modeling and evaluation › workload characterization › commercial workloads
OLTP workload characterization |
0.0 | 1 | 2000 | Impact of Chip-Level Integration on Performance of OLTP Workloads · HPCA 2000 |
Parallel and multicore computing › multiprocessor system
shared-memory multiprocessor |
0.0 | 6 | 1999 | Comparative Evaluation of Fine- and Coarse-Grain Approaches for Software Distributed Shared Memory · HPCA 1999 Flexible Use of Memory for Replication/Migration in Cache-Coherent DSM Multiprocessors · ISCA 1998 Performance of Database Workloads on Shared-Memory Systems with Out-of-Order Processors · ASPLOS 1998 |
Memory systems › cache coherence › coherence granularity
coarse-grain coherence |
0.0 | 1 | 1999 | Comparative Evaluation of Fine- and Coarse-Grain Approaches for Software Distributed Shared Memory · HPCA 1999 |
Memory systems › cache coherence
coherence granularity |
0.0 | 1 | 1999 | Comparative Evaluation of Fine- and Coarse-Grain Approaches for Software Distributed Shared Memory · HPCA 1999 |
Memory systems
cache |
0.0 | 1 | 1998 | An Analysis of Database Workload Performance on Simultaneous Multithreaded Processors · ISCA 1998 |
Performance modeling and evaluation › workload characterization › commercial workloads
database workload |
0.0 | 1 | 1998 | Performance of Database Workloads on Shared-Memory Systems with Out-of-Order Processors · ASPLOS 1998 |
Memory systems
data locality |
0.0 | 1 | 1998 | Flexible Use of Memory for Replication/Migration in Cache-Coherent DSM Multiprocessors · ISCA 1998 |
Distributed systems
data replication and migration |
0.0 | 1 | 1998 | Flexible Use of Memory for Replication/Migration in Cache-Coherent DSM Multiprocessors · ISCA 1998 |
Processor architecture and microarchitecture › out-of-order execution
out-of-order processor |
0.0 | 1 | 1998 | Performance of Database Workloads on Shared-Memory Systems with Out-of-Order Processors · ASPLOS 1998 |
Processor architecture and microarchitecture › multithreading
simultaneous multithreading |
0.0 | 1 | 1998 | An Analysis of Database Workload Performance on Simultaneous Multithreaded Processors · ISCA 1998 |
Operating systems › fault tolerance
checkpoint and rollback |
0.0 | 1 | 2006 | ReViveI/O: efficient handling of I/O in highly-available rollback-recovery servers · HPCA 2006 |
Concurrent programming
memory models |
0.0 | 1 | 1997 | Towards Transparent and Efficient Software Distributed Shared Memory · SOSP 1997 |
Parallel and multicore computing
parallel programming models |
0.0 | 1 | 1997 | Towards Transparent and Efficient Software Distributed Shared Memory · SOSP 1997 |
Performance modeling and evaluation › parallel system performance
multiprocessor performance evaluation |
0.0 | 2 | 1991 | Comparative Evaluation of Latency Reducing and Tolerating Techniques · ISCA 1991 Performance Evaluation of Memory Consistency Models for Shared Memory Multiprocessors · ASPLOS 1991 |
Memory systems › non-uniform memory access
CC-NUMA |
0.0 | 2 | 2000 | Architecture and design of AlphaServer GS320 · ASPLOS 2000 Flexible Use of Memory for Replication/Migration in Cache-Coherent DSM Multiprocessors · ISCA 1998 |
Memory systems › cache coherence
cache-coherent shared memory |
0.0 | 1 | 1994 | The Stanford FLASH Multiprocessor · ISCA 1994 |
Parallel and multicore computing › parallel programming models
message passing |
0.0 | 1 | 1994 | The Stanford FLASH Multiprocessor · ISCA 1994 |
Methods — techniques the papers use, named apart from their topics
simulation · 0.1full-system simulation · 0.0trace analysis · 0.0performance evaluation · 0.0virtual memory coherence · 0.0instrumentation · 0.0race-free protocol · 0.0programmable memory controller · 0.0inline state checking · 0.0directory protocol comparison · 0.0fine-granularity coherence · 0.0binary translation · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2006 | ReViveI/O: efficient handling of I/O in highly-available rollback-recovery serversabstractThe increasing demand for reliable computers has led to proposals for hardware-assisted rollback of memory state. Such approach promises major reductions in mean time to repair (MTTR). The benefits are especially compelling for database servers, where existing recovery software typically leads to downtimes of tens of minutes. Unfortunately, adoption of such proposals is hindered by the lack of efficient mechanisms for I/O recovery. This paper presents and evaluates ReViveI/O, a scheme for I/O undo and redo that is compatible with mechanisms for hardware-assisted rollback of memory state. We have fully implemented a Linux-based prototype that shows that low-overhead, low-MTTR recovery of I/O is feasible. For 20-120 ms between checkpoints, a throughput-oriented workload such as TPC-C has negligible overhead. Moreover, for 50 ms or less between checkpoints, the response time of a latency-bound workload such as WebStone remains tolerable. In all cases, the recovery time of ReViveI/O is practically negligible. The result is a cost-effective highly-available server. Jun Nakano, Pablo Montesinos, Kourosh Gharachorloo, Josep Torrellas |
HPCA | 3 |
| 2001 | Code layout optimizations for transaction processing workloadsabstractCommercial applications such as databases and Web servers constitute the most important market segment for high-performance servers. Among these applications, on-line transaction processing (OLTP) workloads provide a challenging set of requirements for system designs since they often exhibit inefficient executions dominated by a large memory stall component. This behavior arises from large instruction and data footprints and high communication miss rates. A number of recent studies have characterized the behavior of commercial workloads and proposed architectural features to improve their performance. However, there has been little research on the impact of software and compiler-level optimizations for improving the behavior of such workloads. Alex Ramírez, Luiz André Barroso, Kourosh Gharachorloo, Robert S. Cohn, Josep Lluís Larriba-Pey, P. Geoffrey Lowney, Mateo Valero |
ISCA | 3 |
| 2000 | Architecture and design of AlphaServer GS320abstractThis paper describes the architecture and implementation of the AlphaServer GS320, a cache-coherent non-uniform memory access multiprocessor developed at Compaq. The AlphaServer GS320 architecture is specifically targeted at medium-scale multiprocessing with 32 to 64 processors. Each node in the design consists of four Alpha 21264 processors, up to 32GB of coherent memory, and an aggressive IO subsystem. The current implementation supports up to 8 such nodes for a total of 32 processors. While snoopy-based designs have been stretched to medium-scale multiprocessors by some vendors, providing sufficient snoop bandwidth remains a major challenge especially in systems with aggressive processors. At the same time, directory protocols targeted at larger scale designs lead to a number of inherent inefficiencies relative to snoopy designs. A key goal of the AlphaServer GS320 architecture has been to achieve the best-of-both-worlds, partly by exploiting the bounded scale of the target systems.This paper focuses on the unique design features used in the AlphaServer GS320 to efficiently implement coherence and consistency. The guiding principle for our directory-based protocol is to address correctness issues related to rare protocol races without burdening the common transaction flows. Our protocol exhibits lower occupancy and lower message counts compared to previous designs, and provides more efficient handling of 3-hop transactions. Furthermore, our design naturally lends itself to elegant solutions for deadlock, livelock, starvation, and fairness. The AlphaServer GS320 architecture also incorporates a couple of innovative techniques that extend previous approaches for efficiently implementing memory consistency models. These techniques allow us to generate commit events (which are used for ordering purposes) well in advance of formulating the reply to a transaction. Furthermore, the separation of the commit event allows time-critical replies to by-pass inbound requests without violating ordering properties. Even though our design specifically targets medium-scale servers, many of the same techniques can be applied to larger-scale directory-based and smaller-scale snoopy-based designs. Finally, we evaluate the performance impact of some of the above optimizations and present a few competitive benchmark results. Kourosh Gharachorloo, Madhu Sharma, Simon Steely, Stephen Van Doren |
ASPLOS | 1 |
| 2000 | Impact of Chip-Level Integration on Performance of OLTP WorkloadsabstractWith increasing chip densities, future microprocessor designs have the opportunity to integrate many of the traditional system-level modules onto the same chip as the processor. Some current designs already integrate extremely large on-chip caches, and there are aggressive next-generation designs that attempt to also integrate the memory controller, coherence hardware, and network router all onto a single chip. The tight coupling of these modules will enable efficient memory systems with substantially better latency and bandwidth characteristics relative to current designs. Among the important application areas for high-performance servers, online transaction processing (OLTP) workloads are likely to benefit most from these trends due to their large instruction and data footprints and high communication miss rates. This paper examines the design trade-offs that arise as more system functionality is integrated onto the processor chip, and identifies a number of important architectural choices that are influenced by chip-level integration. In addition, the paper presents a detailed study of the performance impact of chip-level integration in the context of OLTP workloads. Our results are based on full system simulations of the Oracle commercial database engine running on both in-order and out-of-order issue processors used in uniprocessor and multiprocessor configurations. The results show that chip-level integration can improve the performance of both configurations by about 1.4 to 1.5 times, though for different reasons. For uniprocessors, integration of the L2 cache and the resulting lower hit latency is the primary factor in performance improvement. For multiprocessors, the improvement comes from both the integration of the L2 cache (lower L2 hit latency) and the integration of the other memory system components (better dirty remote latency). Furthermore, we find that the higher associativity afforded by integrating the L2 cache plays a critical role in counteracting the loss of capacity relative to larger off-chip caches. Finally, we find that the relative gains from chip-level integration are virtually identical for in-order and out-of-order processors. Luiz André Barroso, Kourosh Gharachorloo, Andreas Nowatzyk, Ben Verghese |
HPCA | 2 |
| 2000 | Piranha: a scalable architecture based on single-chip multiprocessingabstractThis paper describes the Piranha system, a research prototype being developed at Compaq that aggressively exploits chip multiprocessing by integrating eight simple Alpha processor cores along with a two-level cache hierarchy onto a single chip. Piranha also integrates further on-chip functionality to allow for scalable multiprocessor configurations to be built in a glueless and modular fashion. The use of simple processor cores combined with an industry-standard ASIC design methodology allow us to complete our prototype within a short time-frame, with a team size and investment that are an order of magnitude smaller than that of a commercial microprocessor. Our detailed simulation results show that while each Piranha processor core is substantially slower than an aggressive next-generation processor, the integration of eight cores onto a single chip allows Piranha to outperform next-generation processors by up to 2.9 times (on a per chip basis) on important workloads such as OLTP. This performance advantage can approach a factor of five by using full-custom instead of ASIC logic. In addition to exploiting chip multiprocessing, the Piranha prototype incorporates several other unique design choices including a shared second-level cache with no inclusion, a highly optimized cache coherence protocol, and a novel I/O architecture. Luiz André Barroso, Kourosh Gharachorloo, Robert McNamara, Andreas Nowatzyk, Shaz Qadeer, Barton Sano, Robert Stets, Ben Verghese |
ISCA | 2 |
| 1999 | Comparative Evaluation of Fine- and Coarse-Grain Approaches for Software Distributed Shared MemoryabstractSymmetric multiprocessors (SMPs) connected with low-latency networks provide attractive building blocks for software distributed shared memory systems. Two distinct approaches have been used: the fine-grain approach that instruments application loads and stores to support a small coherence granularity, and the coarse-grain approach based on virtual memory hardware that provides coherence at a page granularity. Fine-grain systems offer a simple migration path for applications developed on hardware multiprocessors by supporting coherence protocols similar to those implemented in hardware. On the other hand, coarse-grain systems can potentially provide higher performance through more optimized protocols and larger transfer granularities, while avoiding instrumentation overheads. Numerous studies have examined each approach individually, but major differences in experimental platforms and applications make comparison of the approaches difficult. This paper presents a detailed comparison of two mature systems, Shasta and Cashmere, representing the fine- and coarse-grain approaches, respectively. Both systems are tuned to run on the same commercially available, state-of-the-art cluster of AlphaServer SMPs connected via a Memory Channel network. As expected, our results show that Shasta provides robust performance for applications tuned for hardware multiprocessors, and can better tolerate fine-grain synchronization. In contrast, Cashmere is highly sensitive to fine-grain synchronization, but provides a performance edge for applications with coarse-grain behavior. Interestingly, we found that the performance gap between the systems can often be bridged by program modifications that address coherence and synchronization granularity. In addition, our study reveals some unexpected results related to the interaction of current compiler technology with application instrumentation, and the ability of SMP-aware protocols to avoid certain performance disadvantages of coarse-grain approaches. Sandhya Dwarkadas, Kourosh Gharachorloo, Leonidas I. Kontothanassis, Daniel J. Scales, Michael L. Scott, Robert Stets |
HPCA | 2 |
| 1998 | Performance of Database Workloads on Shared-Memory Systems with Out-of-Order ProcessorsabstractDatabase applications such as online transaction processing (OLTP) and decision support systems (DSS) constitute the largest and fastest-growing segment of the market for multiprocessor servers. However, most current system designs have been optimized to perform well on scientific and engineering workloads. Given the radically different behavior of database workloads (especially OLTP), it is important to re-evaluate key system design decisions in the context of this important class of applications. This paper examines the behavior of database workloads on shared-memory multiprocessors with aggressive out-of-order processors, and considers simple optimizations that can provide further performance improvements. Our study is based on detailed simulations of the Oracle commercial database engine. The results show that the combination of out-of-order execution and multiple instruction issue is indeed effective in improving performance of database workloads, providing gains of 1.5 and 2.6 t... Parthasarathy Ranganathan, Kourosh Gharachorloo, Sarita V. Adve, Luiz André Barroso |
ASPLOS | 2 |
| 1998 | Fine-Grain Software Distributed Shared Memory on SMP ClustersabstractCommercial SMP nodes are an attractive building block for software distributed shared memory systems. The advantages of using SMP nodes include fast communication among processors within the same node and potential gains from clustering where remote data fetched by one processor is used by other processors on the same node. This paper describes a major extension to the Shasta distributed shared memory system to run efficiently on a cluster of SMP nodes. The Shasta system keeps shared data coherent across nodes at a fine granularity by inserting inline code that checks the cache state of shared data before each load or store in an application. However allowing processors to share memory within the same SMP is complicated by race conditions that arise because the inline state check is non-atomic with respect to the actual load or store of shared data. We present a novel protocol that avoids such race conditions without the use of costly synchronization in the inline checking code. To characterize the benefits of using SMP nodes in the context of Shasta, we present detailed performance results for nine SPLASH-2 applications running on a cluster of Alpha multiprocessors. Daniel J. Scales, Kourosh Gharachorloo, Anshu Aggarwal |
HPCA | 2 |
| 1998 | Memory System Characterization of Commercial WorkloadsabstractThis paper presents a detailed performance study of three important classes of commercial workloads: online transaction processing (OLTP), decision support systems (DSS), and Web index search. We use the Oracle commercial database engine for our OLTP and DSS workloads, and the AltaVista search engine for our Web index search workload. This study characterizes the memory system behavior of these workloads through a large number of architectural experiments on Alpha multiprocessors augmented with full system simulations to determine the impact of architectural trends. We also identify a set of simplifications that make these workloads more amenable to monitoring and simulation without affecting representative memory system behavior. We observe that systems optimized for OLTP versus DSS and index search workloads may lead to diverging designs, specifically in the size and speed requirements for off-chip caches. Luiz André Barroso, Kourosh Gharachorloo, Edouard Bugnion |
ISCA | 2 |
| 1998 | An Analysis of Database Workload Performance on Simultaneous Multithreaded ProcessorsabstractSimultaneous multithreading (SMT) is an architectural technique in which the processor issues multiple instructions from multiple threads each cycle. While SMT has been shown to be effective on scientific workloads, its performance on database systems is still an open question. In particular, database systems have poor cache performance, and the addition of multithreading has the potential to exacerbate cache conflicts. This paper examines database performance on SMT processors using traces of the Oracle database management system. Our research makes three contributions. First, it characterizes the memory-system behavior of database systems running on-line transaction processing and decision support system workloads. Our data show that while DBMS workloads have large memory footprints, there is substantial data reuse in a small, cacheable "critical" working set. Second, we show that the additional data cache conflicts caused by simultaneous-multithreaded instruction scheduling can be nearly eliminated by the proper choice of software-directed policies for virtual-to-physical page mapping and per-process address offsetting. Our results demonstrate that with the best policy choices, D-cache miss rates on an 8-context SMT are roughly equivalent to those on a single-threaded superscalar. Multithreading also leads to better interthread instruction cache sharing, reducing I-cache miss rates by up to 35%. Third, we show that SMT's latency tolerance is highly effective for database applications. For example, using a memory-intensive OLTP workload, an 8-context SMT processor achieves a 3-fold increase in instruction throughput over a single-threaded superscalar with similar resources. Jack L. Lo, Luiz André Barroso, Susan J. Eggers, Kourosh Gharachorloo, Henry M. Levy, Sujay S. Parekh |
ISCA | 4 |
| 1998 | Flexible Use of Memory for Replication/Migration in Cache-Coherent DSM MultiprocessorsabstractGiven the limitations of bus-based multiprocessors, CC-NUMA is the scalable architecture of choice for shared-memory machines. The most important characteristic of the CC-NUMA architecture is that the latency to access data on a remote node is considerably larger than the latency to access local memory. On such machines, good data locality can reduce memory stall time and is therefore a critical factor in application performance. In this paper we study the various options available to system designers to transparently decrease the fraction of data misses serviced remotely. This work is done in the context of the Stanford FLASH multiprocessor. FLASH is unique in that each node has a single pool of DRAM that can be used in a variety of ways by the programmable memory controller. We use the programmability of FLASH to explore different options for cache-coherence and data-locality in compute-server workloads. First, we consider two protocols for providing base cache-coherence, one with centralized directory information (dynamic pointer allocation) and another with distributed directory information (SCI). While several commercial systems are based on SCI, we find that a centralized scheme has superior performance. Next, we consider different hardware and software techniques that use some or all of the local memory in a node to improve data locality. Finally, we propose a hybrid scheme that combines hardware and software techniques. These schemes work on the same base platform with both user and kernel references from the workloads. The paper thus offers a realistic and fair comparison of replication/migration techniques that has not previously been feasible. Vijayaraghavan Soundararajan, Mark A. Heinrich, Ben Verghese, Kourosh Gharachorloo, Anoop Gupta, John L. Hennessy |
ISCA | 4 |
| 1997 | Design and Performance of the Shasta Distributed Shared Memory Protocolabstractresearch relevant to the design and application of high performance scientific computers. We test our ideas by designing, building, and using real systems. The systems we build are research prototypes; they are not intended to become products. There are two other research laboratories located in Palo Alto, the Network Systems Daniel J. Scales, Kourosh Gharachorloo |
International Conference on Supercomputing | 2 |
| 1997 | Towards Transparent and Efficient Software Distributed Shared MemoryabstractDespite a large research effort, software distributed shared memory systems have not been widely used to run parallel applications across clusters of computers.The higher performance of hardware multiprocessors makes them the preferred platform for developing and executing applications.In addition, most applications are distributed only in binary format for a handful of popular hardware systems.Due to their limited functionality, software systems cannot directly execute the applications developed for hardware platforms.We have developed a system called Shasta that attempts to address the issues of efficiency and transparency that have hindered wider acceptanceof software systems.Shastais adistributedsharedmemory system that supports coherence at a fine granularity in software and can efficiently exploit small-scale SMP nodes by allowing processes on the same node to share data at hardware speeds.This paper focuses on our goal of tapping into large classes of commercially available applications by transparently executing the same binaries thatrun on hardware platforms.We diicussthe issues involved in achieving transparent execution of binaries, which include supporting the full instruction set architecture, implementing an appropriate memory consistency model, and extending OS services across separatenodes.We also describe the techniquesusedin Shastatosolvetheabovepmblems.TheShastasystemisfullyfunctional on a prototype cluster of Alpha multiprocessors connected through Digital's Memory Channel network and can transparently run parallel applications on the cluster that were compiled to run on a single shared-memory multiprocessor.As an example of Shasta's flexibility, it can execute Oracle 7.3, a commercial database engine, across the cluster, including workloads modeled after the TPC-B and TPC-D database benchmarks.To characterize the performance of the system and the cost of providing complete transparency, we present performance results for microbenchmarks and applications running on the cluster, include preliminary results for Oracle runs. Daniel J. Scales, Kourosh Gharachorloo |
SOSP | 2 |
| 1996 | Shasta: A Low Overhead, Software-Only Approach for Supporting Fine-Grain Shared MemoryabstractThis paper describes Shasta, a system that supports a shared address space in software on clusters of computers with physically distributed memory. A unique aspect of Shasta compared to most other software distributed shared memory systems is that shared data can be kept coherent at a fine granularity. In addition, the system allows the coherence granularity to vary across different shared data structures in a single application. Shasta implements the shared address space by transparently rewriting the application executable to intercept loads and stores. For each shared load or store, the inserted code checks to see if the data is available locally and communicates with other processors if necessary. The system uses numerous techniques to reduce the run-time overhead of these checks. Since Shasta is implemented entirely in software, it also provides tremendous flexibility in supporting different types of cache coherence protocols. We have implemented an efficient cache coherence protocol that incorporates a number of optimizations, including support for multiple communication granularities and use of relaxed memory models. This system is fully functional and runs on a cluster of Alpha workstations.The primary focus of this paper is to describe the techniques used in Shasta to reduce the checking overhead for supporting fine granularity sharing in software. These techniques include careful layout of the shared address space, scheduling the checking code for efficient execution on modern processors, using a simple method that checks loads using only the value loaded, reducing the extra cache misses caused by the checking code, and combining the checks for multiple loads and stores. To characterize the effect of these techniques, we present detailed performance results for the SPLASH-2 applications running on an Alpha processor. Without our optimizations, the checking overheads are excessively high, exceeding 100% for several applications. However, our techniques are effective in reducing these overheads to a range of 5% to 35% for almost all of the applications. We also describe our coherence protocol and present some preliminary results on the parallel performance of several applications running on our workstation cluster. Our experience so far indicates that once the cost of checking memory accesses is reduced using our techniques, the Shasta approach is an attractive software solution for supporting a shared address space with fine-grain access to data. Daniel J. Scales, Kourosh Gharachorloo, Chandramohan A. Thekkath |
ASPLOS | 2 |
| 1994 | Integration of Message Passing and Shared Memory in the Stanford FLASH MultiprocessorabstractThe advantages of using message passing over shared memory for certain types of communication and synchronization have provided an incentive to integrate both models within a single architecture. A key goal of the FLASH (FLexible Architecture for SHared memory) project at Stanford is to achieve this integration while maintaining a simple and efficient design. This paper presents the hardware and software mechanisms in FLASH to support various message passing protocols. We achieve low overhead message passing by delegating protocol functionality to the programmable node controllers in FLASH and by providing direct user-level access to this messaging subsystem. In contrast to most earlier work, we provide an integrated solution that handles the interaction of the messaging protocols with virtual memory, protected multiprogramming, and cache coherence. Detailed simulation studies indicate that this system can sustain message-transfers rates of several hundred megabytes per second, effectively utilizing projected network bandwidths for next generation multiprocessors. John Heinlein, Kourosh Gharachorloo, Scott Dresser, Anoop Gupta |
ASPLOS | 2 |
| 1994 | The Performance Impact of Flexibility in the Stanford FLASH MultiprocessorabstractA flexible communication mechanism is a desirable feature in multiprocessors because it allows support for multiple communication protocols, expands performance monitoring capabilities, and leads to a simpler design and debug process. In the Stanford FLASH multiprocessor, flexibility is obtained by requiring all transactions in a node to pass through a programmable node controller, called MAGIC. In this paper, we evaluate the performance costs of flexibility by comparing the performance of FLASH to that of an idealized hardwired machine on representative parallel applications and a multiprogramming workload. To measure the performance of FLASH, we use a detailed simulator of the FLASH and MAGIC designs, together with the code sequences that implement the cache-coherence protocol. We find that for a range of optimized parallel applications the performance differences between the idealized machine and FLASH are small. For these programs, either the miss rates are small or the latency of the programmable protocol can be hidden behind the memory access time. For applications that incur a large number of remote misses or exhibit substantial hot-spotting, performance is poor for both machines, though the increased remote access latencies or the occupancy of MAGIC lead to lower performance for the flexible design. In most cases, however, FLASH is only 2%–12% slower than the idealized machine. Mark A. Heinrich, Jeffrey Kuskin, David Ofelt, John Heinlein, Joel Baxter, Jaswinder Pal Singh, Richard Simoni, Kourosh Gharachorloo, David Nakahira, Mark Horowitz, Anoop Gupta, Mendel Rosenblum, John L. Hennessy |
ASPLOS | 8 |
| 1994 | Performance evaluation of hybrid hardware and software distributed shared memory protocolsabstractHardware distributed shared memory (DSM) systems efficiently support fine grain sharing of data by maintaining coherence at the level of individual cache lines and providing automatic replication in processor caches. Software DSM systems, on the other hand, amortize high communication costs by maintaining coherence at coarser granularities and replicating data at the level of local main memories. Even though software DSM systems have traditionally been targeted towards loosely coupled environments, some of the techniques are potentially useful in the context of tightly coupled multiprocessors. In particular, communicating data at a coarse grain can sometimes be more efficient than transferring the data as individual cache lines. Furthermore, replication in local memories can accommodate applications with larger working sets as compared to replication in processor caches only. Therefore, combining the two techniques in a hybrid protocol can potentially exploit the benefits of each approach. Rohit Chandra, Kourosh Gharachorloo, Vijayaraghavan Soundararajan, Anoop Gupta |
International Conference on Supercomputing | 2 |
| 1994 | The Stanford FLASH MultiprocessorabstractThe FLASH multiprocessor efficiently integrates support for cache-coherent shared memory and high-performance message passing, while minimizing both hardware and software overhead. Each node in FLASH contains a microprocessor, a portion of the machine's global memory, a port to the interconnection network, The MAGIC chip handles all communication both within the node and among nodes, using hardwired data paths for efficient data movement and a programmable processor optimized for executing protocol operations. The use of the protocol processor makes FLASH very flexible/spl minus/it can support a variety of different communication mechanisms/spl minus/and simplifies the design and implementation. This paper presents the architecture of FLASH and MAGIC, and discusses the base cache-coherence and message-passing protocols. Latency and occupancy numbers, which are derived from our system-level simulator and our Verilog code, are given for several common protocol operations. The paper also describes our software strategy and FLASH's current status.> Jeffrey Kuskin, David Ofelt, Mark A. Heinrich, John Heinlein, Richard Simoni, Kourosh Gharachorloo, John Chapin, David Nakahira, Joel Baxter, Mark Horowitz, Anoop Gupta, Mendel Rosenblum, John L. Hennessy |
ISCA | 6 |
| 1992 | Hiding Memory Latency using Dynamic Scheduling in Shared-Memory MultiprocessorsabstractThe large latency of memory accesses is a major impediment to achieving high performance in large scale shared-memory multi-processsors. Relaxing the memory consistency model is an attractive technique for hiding this latency by allowing the overlap of memory accesses with other computation and memory accesses. Previous studies on relaxed models have shown that the latency of write accesses can be hidden by buffering writes and allowing reads to bypass pending writes. Hiding the latency of reads by exploiting the overlap allowed by relaxed models is inherently more difficult, however, simply because the processor depends on the return value for its future computation. Kourosh Gharachorloo, Anoop Gupta, John L. Hennessy |
ISCA | 1 |
| 1992 | Programming for Different Memory Consistency ModelsabstractThe memory consistency model, or memory model, supported by a shared-memory multiprocessor directly affects its performance. The most commonly assumed memory model is sequential consistency (SC). While SC provides a simple model for the programmer, it imposes rigid constraints on the ordering of memory accesses and restricts the use of common hardware and compiler optimizations. To remedy the shortcomings of SC, several relaxed memory models have been proposed in the literature. These include processor consistency (PC), weak ordering (WO), release consistency (RCsc/RCpc), total store ordering (TSO), and partial store ordering (PSO). While the relaxed models provide the potential for higher performance, they present a more complex model for programmers when compared to SC. Our previous research has addressed this tradeoff by taking a programmer-centric approach. We have proposed memory models (DRF0, DRF1, PL) that allow the programmer to reason with SC, but require certain information about the memory accesses. This information is used by the system to relax the ordering among memory accesses while still maintaining SC for the programmer. Our previous models formalized the information that allowed optimizations associated with WO and RCsc to be used. This paper extends the above approach by defining a new model, PLpc, that allows optimizations of the TSO, PSO, PC, and RCpc models as well. Thus, PLpc provides a unified programming model that maintains the ease of reasoning with SC while providing for efficiency and portability across a wide range of proposed system designs. Kourosh Gharachorloo, Sarita V. Adve, Anoop Gupta, John L. Hennessy, Mark D. Hill |
J. Parallel Distributed Comput. | 1 |
| 1991 | Performance Evaluation of Memory Consistency Models for Shared Memory MultiprocessorsabstractThe memory consistency model supported by a multiprocessor architecture determines the amount of buffering and pipelining Kourosh Gharachorloo, Anoop Gupta, John L. Hennessy |
ASPLOS | 1 |
| 1991 | Two Techniques to Enhance the Performance of Memory Consistency Models
Kourosh Gharachorloo, Anoop Gupta, John L. Hennessy |
ICPP (1) | 1 |
| 1991 | Comparative Evaluation of Latency Reducing and Tolerating TechniquesabstractTechniques that can cope with the large latency of memory accesses are essential for achieving high processor utilization in large-scale shared-memory multiprocessors. In this paper, we consider four architectural techniques that address the latency problem: (i) hardware coherent caches, (ii) relaxed memory consistency, (iii) softwarecontrolled prefetching, and (iv) multiple-context support. While some studies of benefits of the individual techniques have been done, no study evaluates all of the techniques within a consistent framework. This paper attempts to remedy this by providing a comprehensive evaluation of the benefits of the four techniques, both individually and in combinations, using a consistent set of architectural assumptions. The results in this paper have been obtained using detailed simulations of a large-scale shared-memory multiprocessor. Our results show that caches and relaxed consistency uniformly improve performance. The improvements due to prefetching and multiple contexts are sizeable, but are much more applicationdependent. Combinations of the various techniques generally attain better performance than each one on its own. Overall, we show that using suitable combinations of the techniques, performance can be improved by 4 to 7 times. Anoop Gupta, John L. Hennessy, Kourosh Gharachorloo, Todd C. Mowry, Wolf-Dietrich Weber |
ISCA | 3 |
| 1991 | Detecting Violations of Sequential ConsistencyabstractThe performance of a multiprocessor is directly affected by the choice of the memory consistency model supported. Several different consistency models have been proposed in the literature. These range from sequential consistency on one end, allowing limited buffering of memory accesses, to release consistency on the other end, allowing extensive buffering and pipelining. While the relaxed models such as release consistency provide potential for higher performance, they present a more complex programming model than sequential consistency. Previous research has addressed this tradeoff by showing that a release consistent architecture provides sequentially consistent executions for programs that are free of data races. However, the burden of guaranteeing that the program is free of data races remains with the programmer or compiler. Kourosh Gharachorloo, Phillip B. Gibbons |
SPAA | 1 |
| 1991 | Proving Sequential Consistency of High-Performance Shared Memories (Extended Abstract)abstractRelaxed consistency models such as weak consistency or release consistency may be understood as a contract between programmer and hardware designer, in which this release consistent memory. Phillip B. Gibbons, Michael Merritt, Kourosh Gharachorloo |
SPAA | 3 |
| 1990 | Memory Consistency and Event Ordering in Scalable Shared-Memory MultiprocessorsabstractScalable shared-memory multiprocessors distribute memory among the processors and use scalable interconnection networks to provide high bandwidth and low latency communication. In addition, memory accesses are cached, buffered, and pipelined to bridge the gap between the slow shared memory and the fast processors. Unless carefully controlled, such architectural optimizations can cause memory accesses to be executed in an order different from what the programmer expects. The set of allowable memory access orderings forms the memory consistency model or event ordering model for an architecture. Kourosh Gharachorloo, Daniel Lenoski, James Laudon, Phillip B. Gibbons, Anoop Gupta, John L. Hennessy |
ISCA | 1 |
| 1990 | The Directory-Based Cache Coherence Protocol for the DASH MultiprocessorabstractDASH is a scalable shared-memory multiprocessor currently being developed at Stanford's Computer Systems Laboratory. The architecture consists of powerful processing nodes, each with a portion of the shared-memory, connected to a scalable interconnection network. A key feature of DASH is its distributed directory-based cache coherence protocol. Unlike traditional snoopy coherence protocols, the DASH protocol does not rely on broadcast; instead it uses point-to-point messages sent between the processors and memories to keep caches consistent. Furthermore, the DASH system does not contain any single serialization or control point. While these features provide the basis for scalability, they also force a reevaluation of many fundamental issues involved in the design of a protocol. These include the issues of correctness, performance and protocol complexity. In this paper, we present the design of the DASH coherence protocol and discuss how it addresses the above issues. We also discuss our strategy for verifying the correctness of the protocol and briefly compare our protocol to the IEEE Scalable Coherent Interface protocol. Daniel Lenoski, James Laudon, Kourosh Gharachorloo, Anoop Gupta, John L. Hennessy |
ISCA | 3 |