Demo Data from EDBT 2026 / reviewers in the wild / expert
Wilson C. Hsieh
dblp:31/1764
· DBLP profile ↗
29ranked-venue papers
5as first author
0since 2021 · last 2013
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 15 · 3 first-authorSoftware engineering, systems software and programming languages · 14 · 1 first-authorDatabases, data management, data science and information retrieval · 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
14 papers |
Distributed systems · 56% Memory systems · 25% Storage systems · 8% | |
| Software engineering, system software, and programming languages
12 papers |
Programming languages and type systems · 40% Operating systems · 31% Runtime systems and virtual machines · 14% | |
| Databases, data mining, and information retrieval
3 papers |
Distributed and cloud data management · 37% Information retrieval · 32% Data mining · 16% |
Topics — the 30 heaviest of 64, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Distributed systems
distributed database |
0.3 | 2 | 2013 | Spanner: Google's Globally Distributed Database · ACM Trans. Comput. Syst. 2013 Spanner: Google's Globally-Distributed Database · OSDI 2012 |
Distributed systems
consensus |
0.2 | 1 | 2013 | Spanner: Google's Globally Distributed Database · ACM Trans. Comput. Syst. 2013 |
Distributed systems
replication |
0.2 | 1 | 2013 | Spanner: Google's Globally Distributed Database · ACM Trans. Comput. Syst. 2013 |
Distributed systems › replication › update propagation
synchronous replication |
0.2 | 1 | 2013 | Spanner: Google's Globally Distributed Database · ACM Trans. Comput. Syst. 2013 |
Storage systems
distributed storage |
0.1 | 2 | 2008 | Bigtable: A Distributed Storage System for Structured Data · ACM Trans. Comput. Syst. 2008 Bigtable: A Distributed Storage System for Structured Data (Awarded Best Paper!) · OSDI 2006 |
Operating systems › system security › operating system security › protection mechanism › isolation
process isolation |
0.1 | 2 | 2005 | The KaffeOS Java runtime system · ACM Trans. Program. Lang. Syst. 2005 Processes in KaffeOS: Isolation, Resource Management, and Sharing in Java · OSDI 2000 |
Operating systems
resource management |
0.1 | 2 | 2005 | The KaffeOS Java runtime system · ACM Trans. Program. Lang. Syst. 2005 Processes in KaffeOS: Isolation, Resource Management, and Sharing in Java · OSDI 2000 |
Data mining
large-scale data analytics |
0.1 | 1 | 2006 | Data management projects at Google · SIGMOD Conference 2006 |
Information retrieval
search engines |
0.1 | 1 | 2006 | Data management projects at Google · SIGMOD Conference 2006 |
Information retrieval › search engines
structured data search |
0.1 | 1 | 2006 | Data management projects at Google · SIGMOD Conference 2006 |
Memory systems › memory management › virtual memory
superpage promotion |
0.1 | 2 | 2001 | Reevaluating Online Superpage Promotion with Hardware Support · HPCA 2001 Online superpage promotion revisited (poster) · SIGMETRICS 2000 |
Memory systems › memory management
virtual memory |
0.1 | 2 | 2001 | Reevaluating Online Superpage Promotion with Hardware Support · HPCA 2001 Online superpage promotion revisited (poster) · SIGMETRICS 2000 |
Memory systems
memory controller |
0.1 | 2 | 2001 | The Impulse Memory Controller · IEEE Trans. Computers 2001 Impulse: Building a Smarter Memory Controller · HPCA 1999 |
Runtime systems and virtual machines › virtual machine implementation
java virtual machine |
0.1 | 1 | 2005 | The KaffeOS Java runtime system · ACM Trans. Program. Lang. Syst. 2005 |
Distributed systems › distributed coordination and fault tolerance
consensus and replication |
0.0 | 1 | 2012 | Spanner: Google's Globally-Distributed Database · OSDI 2012 |
Programming languages and type systems › metaprogramming
compile-time metaprogramming |
0.0 | 1 | 2002 | Maya: Multiple-Dispatch Syntax Extension in Java · PLDI 2002 |
Programming languages and type systems › language design
language extension |
0.0 | 1 | 2002 | Maya: Multiple-Dispatch Syntax Extension in Java · PLDI 2002 |
Programming languages and type systems › metaprogramming
macro systems |
0.0 | 1 | 2002 | Maya: Multiple-Dispatch Syntax Extension in Java · PLDI 2002 |
Programming languages and type systems › method dispatch
multiple dispatch |
0.0 | 1 | 2002 | Maya: Multiple-Dispatch Syntax Extension in Java · PLDI 2002 |
Requirements engineering and software design › software architecture › component-based software engineering
component-based systems |
0.0 | 1 | 2001 | Jiazzi: New-Age Components for Old-Fashioned Java · OOPSLA 2001 |
Programming languages and type systems
type systems |
0.0 | 1 | 2001 | Jiazzi: New-Age Components for Old-Fashioned Java · OOPSLA 2001 |
Memory systems › memory access
indirect addressing |
0.0 | 1 | 2001 | The Impulse Memory Controller · IEEE Trans. Computers 2001 |
Processor architecture and microarchitecture
instruction set architecture |
0.0 | 1 | 2001 | Reverse-Engineering Instruction Encodings · USENIX ATC, General Track 2001 |
Memory systems › memory management › virtual memory › address translation
TLB |
0.0 | 1 | 2001 | Reevaluating Online Superpage Promotion with Hardware Support · HPCA 2001 |
Memory systems › memory management › virtual memory
TLB reach |
0.0 | 1 | 2001 | Reevaluating Online Superpage Promotion with Hardware Support · HPCA 2001 |
Programming languages and type systems
language design |
0.0 | 2 | 1999 | 'C and tcc: A Language and Compiler for Dynamic Code Generation · ACM Trans. Program. Lang. Syst. 1999 C: A Language for High-Level, Efficient, and Machine-Independent Dynamic Code Generation · POPL 1996 |
Distributed systems › remote execution
computation migration |
0.0 | 2 | 1996 | Dynamic Computation Migration in DSM Systems · SC 1996 Computation Migration: Enhancing Locality for Distributed-Memory Parallel Systems · PPoPP 1993 |
High-performance computing › cluster computing
commodity cluster |
0.0 | 1 | 2008 | Bigtable: A Distributed Storage System for Structured Data · ACM Trans. Comput. Syst. 2008 |
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation |
0.0 | 1 | 1999 | 'C and tcc: A Language and Compiler for Dynamic Code Generation · ACM Trans. Program. Lang. Syst. 1999 |
Memory systems › memory management
address remapping |
0.0 | 1 | 1999 | Impulse: Building a Smarter Memory Controller · HPCA 1999 |
Methods — techniques the papers use, named apart from their topics
truetime · 0.2tablet partitioning · 0.2sparse table data model · 0.2user/kernel boundary · 0.1garbage collection for resource management · 0.1simulation · 0.1online algorithm · 0.1multiple dispatch · 0.0generic functions · 0.0separate compilation · 0.0execution-driven simulation · 0.0cyclic component linking · 0.0message handlers · 0.0prototype compiler · 0.0partial evaluation · 0.0optimistic scheduling · 0.0data migration · 0.0RPC-style access · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2013 | Spanner: Google's Globally Distributed DatabaseabstractSpanner is Google’s scalable, multiversion, globally distributed, and synchronously replicated database. It is the first system to distribute data at global scale and support externally-consistent distributed transactions. This article describes how Spanner is structured, its feature set, the rationale underlying various design decisions, and a novel time API that exposes clock uncertainty. This API and its implementation are critical to supporting external consistency and a variety of powerful features: nonblocking reads in the past, lock-free snapshot transactions, and atomic schema changes, across all of Spanner. James C. Corbett, Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost 0001, J. J. Furman, Sanjay Ghemawat, Andrey Gubarev, Christopher Heiser, Peter Hochschild, Wilson C. Hsieh, Sebastian Kanthak, Eugene Kogan, Alexander Lloyd, Sergey Melnik 0001, David Mwaura, David Nagle, Sean Quinlan, Rajesh Rao, Lindsay Rolig, Yasushi Saito, Michal Szymaniak, Ruth Wang, Dale Woodford |
ACM Trans. Comput. Syst. | 11 |
| 2012 | Spanner: Google's Globally-Distributed Database
James C. Corbett, Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost 0001, J. J. Furman, Sanjay Ghemawat, Andrey Gubarev, Christopher Heiser, Peter Hochschild, Wilson C. Hsieh, Sebastian Kanthak, Eugene Kogan, Alexander Lloyd, Sergey Melnik 0001, David Mwaura, David Nagle, Sean Quinlan, Rajesh Rao, Lindsay Rolig, Yasushi Saito, Michal Szymaniak, Ruth Wang, Dale Woodford |
OSDI | 11 |
| 2008 | Bigtable: A Distributed Storage System for Structured DataabstractBigtable is a distributed storage system for managing structured data that is designed to scale to a very large size: petabytes of data across thousands of commodity servers. Many projects at Google store data in Bigtable, including web indexing, Google Earth, and Google Finance. These applications place very different demands on Bigtable, both in terms of data size (from URLs to web pages to satellite imagery) and latency requirements (from backend bulk processing to real-time data serving). Despite these varied demands, Bigtable has successfully provided a flexible, high-performance solution for all of these Google products. In this article, we describe the simple data model provided by Bigtable, which gives clients dynamic control over data layout and format, and we describe the design and implementation of Bigtable. Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach, Michael Burrows, Tushar Chandra, Andrew Fikes, Robert Gruber |
ACM Trans. Comput. Syst. | 4 |
| 2006 | SuperGlue: Component Programming with Object-Oriented Signals
Sean McDirmid, Wilson C. Hsieh |
ECOOP | 2 |
| 2006 | Bigtable: A Distributed Storage System for Structured Data (Awarded Best Paper!)
Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach, Michael Burrows, Tushar Chandra, Andrew Fikes, Robert Gruber |
OSDI | 4 |
| 2006 | Data management projects at GoogleabstractThis session describes three data management projects at Google. BigTable is a highly scalable system for distributed storage and querying of structured data. Sawzall is a system for large-scale analysis of data sets that have a flat but regular structure. Finally, GoogleBase is a system for storing and searching structured data contributed by external parties. Wilson C. Hsieh, Jayant Madhavan, Rob Pike |
SIGMOD Conference | 1 |
| 2005 | The KaffeOS Java runtime systemabstractSingle-language runtime systems, in the form of Java virtual machines, are widely deployed platforms for executing untrusted mobile code. These runtimes provide some of the features that operating systems provide: interapplication memory protection and basic system services. They do not, however, provide the ability to isolate applications from each other. Neither do they provide the ability to limit the resource consumption of applications. Consequently, the performance of current systems degrades severely in the presence of malicious or buggy code that exhibits ill-behaved resource usage. We show that Java runtime systems can be extended to support processes , and that processes can provide robust and efficient support for untrusted applications.We have designed and built KaffeOS, a Java runtime system that provides support for processes. KaffeOS isolates processes and manages the physical resources available to them: CPU and memory. Unlike existing Java virtual machines, KaffeOS can safely terminate processes without adversely affecting the integrity of the system, and it can fully reclaim a terminated process's resources. Finally, KaffeOS requires no changes to the Java language. The novel aspects of the KaffeOS architecture include the application of a user/kernel boundary as a structuring principle for runtime systems, the employment of garbage collection techniques for resource management and isolation, and a model for direct sharing of objects between untrusted applications. The difficulty in designing KaffeOS lay in balancing the goals of isolation and resource management against the goal of allowing direct sharing of objects.For the SpecJVM benchmarks, the overhead that our KaffeOS prototype incurs ranges from 0% to 25%, when compared to the open-source JVM on which it is based. We consider this overhead acceptable for the safety that KaffeOS provides. In addition, our KaffeOS prototype can scale to run more applications than running multiple JVMs. Finally, in the presence of malicious or buggy code that engages in a denial-of-service attack, KaffeOS can contain the attack, remove resources from the attacked applications, and continue to provide robust service to other clients. Godmar Back, Wilson C. Hsieh |
ACM Trans. Program. Lang. Syst. | 2 |
| 2004 | Splice: Aspects That Analyze Programs
Sean McDirmid, Wilson C. Hsieh |
GPCE | 2 |
| 2002 | Computation regrouping: restructuring programs for temporal data cache localityabstractData access costs contribute significantly to the execution time of applications with complex data structures. As the latency of memory accesses becomes high relative to processor cycle times, application performance is increasingly limited by memory performance. In some situations it may be reasonable to trade increased computation costs for reduced memory costs. The contributions of this paper are three-fold: we provide a detailed analysis of the memory performance of a set of seven, memory-intensive benchmarks; we describe Computation Regrouping, a general, source-level approach to improving the overall performance of these applications by improving temporal locality to reduce cache and TLB miss ratios (and thus memory stall times); and we demonstrate significant performance improvements from applying Computation Regrouping to our suite of seven benchmarks. With Computation Regrouping, we observe an average speedup of 1.97, with individual speedups ranging from 1.26 to 3.03. Most of this improvement comes from eliminating memory stall time. Venkata K. Pingali, Sally A. McKee, Wilson C. Hsieh, John B. Carter |
ICS | 3 |
| 2002 | Maya: Multiple-Dispatch Syntax Extension in JavaabstractWe have designed and implemented Maya, a version of Java that allows programmers to extend and reinterpret its syntax. Maya generalizes macro systems by treating grammar productions as generic functions, and semantic actions on productions as multimethods on the corresponding generic functions. Programmers can write new generic functions (i.e., grammar productions) and new multimethods (i.e., semantic actions), through which they can extend the grammar of the language and change the semantics of its syntactic constructs, respectively. Maya's multimethods are compile-time metaprograms that transform abstract syntax: they execute at program compile-time, because they are semantic actions executed by the parser. Maya's multimethods can be dispatched on the syntactic structure of the input, as well as the static, source-level types of expressions in the input. In this paper we describe what Maya can do and how it works. We describe how its novel parsing techniques work and how Maya can statically detect certain kinds of errors, such as code that generates references to free variables. Finally, to demonstrate Maya's expressiveness, we describe how Maya can be used to implement the MultiJava language, which was described by Clifton et al. at OOPSLA 2000. Jason Baker, Wilson C. Hsieh |
PLDI | 2 |
| 2001 | Reevaluating Online Superpage Promotion with Hardware SupportabstractTypical translation lookaside buffers (TLBs) can map a far smaller region of memory than application footprints demand, and the cost of handling TLB misses therefore limits the performance of an increasing number of applications. This bottleneck can be mitigated by the use of superpages, multiple adjacent virtual memory pages that can be mapped with a single TLB entry that extend TLB reach without significantly increasing size or cost. We analyze hardware/software tradeoff for dynamically creating superpages. This study extends previous work by using execution-driven simulation to compare creating superpages via copying with remapping pages within the memory controller and by examining how the tradeoffs change when moving front a single-issue to a superscalar processor model. We find that remapping-based promotion outperforms copying-based promotion, often significantly. Copying-based promotion is slightly more effective on superscalar processors than on single-issue processors, and the relative performance of remapping-based promotion on the two platform is application-dependent. Zhen Fang 0002, Lixin Zhang 0002, John B. Carter, Wilson C. Hsieh, Sally A. McKee |
HPCA | 4 |
| 2001 | Jiazzi: New-Age Components for Old-Fashioned JavaabstractWe present Jiazzi, a system that enables the construction of large-scale binary components in Java. Jiazzi components can be thought of as generalizations of Java packages with added support for external linking and separate compilation. Jiazzi components are practical becuase they are constructed out of standard Java source code. Jiazzi requires neither extensions to the Java language nor special conventions for writing Java source code that will go inside a component. Our components are expressive becuase Jiazzi supports cyclic component linking and mixins, which are used together in an open class pattern that enables the modular addition of new features to existing classes. This paper describes Jiazzi, how it enhances Java with components, its implementation, and how type checking works. An implementation of Jiazzi is available for download. Sean McDirmid, Matthew Flatt, Wilson C. Hsieh |
OOPSLA | 3 |
| 2001 | Reverse-Engineering Instruction Encodings
Wilson C. Hsieh, Dawson R. Engler, Godmar Back |
USENIX ATC, General Track | 1 |
| 2001 | The Impulse Memory ControllerabstractImpulse is a memory system architecture that adds an optional level of address indirection at the memory controller. Applications can use this level of indirection to remap their data structures in memory. As a result, they can control how their data is accessed and cached, which can improve cache and bus utilization. The Impulse design does not require any modification to processor, cache, or bus designs since all the functionality resides at the memory controller. As a result, Impulse can be adopted in conventional systems without major system changes. We describe the design of the Impulse architecture and how an Impulse memory system can be used in a variety of ways to improve the performance of memory-bound applications. Impulse can be used to dynamically create superpages cheaply, to dynamically recolor physical pages, to perform strided fetches, and to perform gathers and scatters through indirection vectors. Our performance results demonstrate the effectiveness of these optimizations in a variety of scenarios. Using Impulse can speed up a range of applications from 20 percent to over a factor of 5. Alternatively, Impulse can be used by the OS for dynamic superpage creation; the best policy for creating superpages using Impulse outperforms previously known superpage creation policies. Lixin Zhang 0002, Zhen Fang 0002, Michael A. Parker, Binu K. Mathew, Lambert Schaelicke, John B. Carter, Wilson C. Hsieh, Sally A. McKee |
IEEE Trans. Computers | 7 |
| 2000 | Processes in KaffeOS: Isolation, Resource Management, and Sharing in Java
Godmar Back, Wilson C. Hsieh, Jay Lepreau |
OSDI | 2 |
| 2000 | Online superpage promotion revisited (poster)abstractNo abstract available. Zhen Fang 0002, Lixin Zhang 0002, John B. Carter, Sally A. McKee, Wilson C. Hsieh |
SIGMETRICS | 5 |
| 2000 | Techniques for the Design of Java Operating Systems
Godmar Back, Patrick Tullmann, Leigh Stoller, Wilson C. Hsieh, Jay Lepreau |
USENIX ATC, General Track | 4 |
| 1999 | Impulse: Building a Smarter Memory ControllerabstractImpulse is a new memory system architecture that adds two important features to a traditional memory controller. First, Impulse supports application-specific optimizations through configurable physical address remapping. By remapping physical addresses, applications control how their data is accessed and cached, improving their cache and bus utilization. Second, Impulse supports prefetching at the memory controller, which can hide much of the latency of DRAM accesses. In this paper we describe the design of the Impulse architecture, and show how an Impulse memory system can be used to improve the performance of memory-bound programs. For the NAS conjugate gradient benchmark, Impulse improves performance by 67%. Because it requires no modification to processor, cache, or bus designs, Impulse can be adopted in conventional systems. In addition to scientific applications, we expect that Impulse will benefit regularly strided memory-bound applications of commercial importance, such as database and multimedia programs. John B. Carter, Wilson C. Hsieh, Leigh Stoller, Mark R. Swanson, Lixin Zhang 0002, Erik Brunvand, Al Davis, Chen-Chi Kuo, Ravindra Kuramkote, Michael A. Parker, Lambert Schaelicke, Terry Tateyama |
HPCA | 2 |
| 1999 | 'C and tcc: A Language and Compiler for Dynamic Code GenerationabstractDynamic code generation allows programmers to use run-time information in order to achieve performance and expressiveness superior to those of static code. The 'C(Tick C) language is a superset of ANSI C that supports efficient and high-level use of dynamic code generation. 'C provides dynamic code generation at the level of C expressions and statements and supports the composition of dynamic code at run time. These features enable programmers to add dynamic code generation to existing C code incrementally and to write important applications (such as “just-in-time” compilers) easily. The article presents many examples of how 'C can be used to solve practical problems. The tcc compiler is an efficient, portable, and freely available implementation of 'C. tcc allows programmers to trade dynamic compilation speed for dynamic code quality: in some aplications, it is most important to generate code quickly, while in others code quality matters more than compilation speed. The overhead of dynamic compilation is on the order of 100 to 600 cycles per generated instruction, depending on the level of dynamic optimizaton. Measurements show that the use of dynamic code generation can improve performance by almost an order of magnitude; two- to four-fold speedups are common. In most cases, the overhead of dynamic compilation is recovered in under 100 uses of the dynamic code; sometimes it can be recovered within one use. Massimiliano Poletto, Wilson C. Hsieh, Dawson R. Engler, M. Frans Kaashoek |
ACM Trans. Program. Lang. Syst. | 2 |
| 1998 | Type-Safe CastingabstractMany modern extensible systems, such as Java and the SPIN operating system, depend on type safety for memory protection. Unfortunately, current type-safe languages do not support systems programming well, because they do not give programmers the ability to deal with untyped data easily. In particular, they do not support the ability to cast between untyped data and language-level types. We describe a powerful, type-safe cast operator that helps programmers write low-level systems codes in type-safe languages. We have implemented this operator in Modula-3 for the SPIN operating system, and we give specific examples of how we use it in SPIN. © 1998 John Wiley & Sons, Ltd. Wilson C. Hsieh, Marc E. Fiuczynski, Przemyslaw Pardyak, Brian N. Bershad |
Softw. Pract. Exp. | 1 |
| 1996 | Atomic Recovery Units: Failure Atomicity for Logical DisksabstractAtomic recovery units (ARUs) are a mechanism that allows several logical disk operations to be executed as a single atomic unit with respect to failures. For example, ARUs can be used during file creation to update several pieces of file meta-data atomically. ARUs simplify systems, as they isolate issues of atomicity within the logical disk system, ARUs are designed as part of the Logical Disk (LD), which provides an interface to disk storage that separates file and disk management by using logical block numbers and block lists. This paper discusses the semantics of concurrent ARUs, as well as the concurrency control they require. A prototype implementation in a log-structured logical disk system is presented and evaluated. The performance evaluation shows that the run-time overhead to support concurrent ARUs is negligible for Read and Write operations, and small but pronounced for file creation (4.0%-7.2%) and deletion (17.9%-20.5%) which mainly manipulate meta-data. The low overhead (when averaged over file creation, writing, reading, and deletion) for concurrent ARUs shows that issues of atomicity can be successfully isolated within the disk system. Robert Grimm 0001, Wilson C. Hsieh, Wiebren de Jonge, M. Frans Kaashoek |
ICDCS | 2 |
| 1996 | C: A Language for High-Level, Efficient, and Machine-Independent Dynamic Code GenerationabstractDynamic code generation allows specialized code sequences to be created using runtime information. Since this information is by definition not available statically, the use of dynamic code generation can achieve performance inherently beyond that of static code generation. Previous attempts to support dynamic code generation have been low-level, expensive, or machine-dependent. Despite the growing use of dynamic code generation, no mainstream language provides flexible, portable, and efficient support for it.We describe 'C (Tick C), a superset of ANSI C that allows flexible, high-level. efficient, and machine-independent specification of dynamically generated code. 'C provides many of the performance benefits of pure partial evaluation, but in the context of a complex, statically typed, but widely used language. 'C examples illustrate the ease of specifying dynamically generated code and how it can be put to use. Experiments with a prototype compiler show that 'C enables excellent performance improvement (in some cases, more than an order of magnitude). Dawson R. Engler, Wilson C. Hsieh, M. Frans Kaashoek |
POPL | 2 |
| 1996 | Dynamic Computation Migration in DSM SystemsabstractWe describe dynamic computation migration, the runtime choice between computation and data migration. Dynamic computation migration is useful for concurrent data structures with unpredictable read/write patterns. We implemented it in MCRL, a multithreaded DSM system that runs on the MIT Alewife machine and Thinking Machines' CM-5. We evaluate two dynamic migration heuristics relative to data migration. On a concurrent, distributed B-tree with 50% lookups and 50% inserts, the STATIC heuristic improves performance by about 17%, on both Alewife and the CM-5. The REPEAT heuristic generally performs better than the STATIC heuristic. On Alewife, with 80% lookups and 20% inserts, the REPEAT heuristic improves performance by 23%; on the CM-5, it improves performance by 46%. Our results apply to concurrent, dynamic data structures whose access patterns are only known at runtime. For regularly accessed data structures, static methods will always be applicable, but we expect future applications to be more dynamic. Wilson C. Hsieh, M. Frans Kaashoek, William E. Weihl |
SC | 1 |
| 1995 | Optimistic Active Messages: A Mechanism for Scheduling Communication with ComputationabstractLow-overhead message passing is critical to the performance of many applications. Active Messages reduce the software overhead for message handling: messages are run as handlers instead of as threads, which avoids the overhead of thread management and the unnecessary data copying of other communication models. Scheduling the execution of Active Messages is typically done by disabling and enabling interrupts, or by polling the network. This primitive scheduling control, combined with the fact that handlers are not schedulable entities, puts severe restrictions on the code that can be run in a message handler. This paper describes a new software mechanism, Optimistic Active Messages (OAM), that eliminates these restrictions; OAMs allow arbitrary user code to execute in handlers, and also allow handlers to block. Despite this gain in expressiveness, OAMs perform as well as Active Messages. Deborah A. Wallach, Wilson C. Hsieh, Kirk L. Johnson, M. Frans Kaashoek, William E. Weihl |
PPoPP | 2 |
| 1993 | Computation Migration: Enhancing Locality for Distributed-Memory Parallel SystemsabstractWe describe computation migration, a new technique that is based on compile-time program transformations, for accesing remote data in a distributed-memory parallel system. In contrast with RPC-style access, where the access is performed remotely, and with data migration, where the data is moved so that it is local, computation migration moves part of the current thread to the processor where the data resides. The access is performed at the remote processor, and the migrated thread portion continues to run on that same processor; this makes subsequent accesses in the thread portion local. Wilson C. Hsieh, William E. Weihl |
PPoPP | 1 |
| 1993 | The Logical Disk: A New Approach to Improving File SystemsabstractThe Logical Disk (LD) defines a new interface to disk storage that separates file management and disk management by using logical block numbers and block lists. The LD interface is designed to support multiple file systems and to allow multiple implementations, both of which are important given the increasing use of kernels that support multiple operating system personalities.A log-structured implementation of LD (LLD) demonstrates that LD can be implemented efficiently. LLD adds about 5% to 10% to the purchase cost of a disk for the main memory it requires. Combining LLD with an existing file system results in a log-structured file system that exhibits the same performance characteristics as the Sprite log-structured file system. Wiebren de Jonge, M. Frans Kaashoek, Wilson C. Hsieh |
SOSP | 3 |
| 1989 | Automatic Generation of DAG ParallelismabstractArticle Free Access Share on Automatic generation of DAG parallelism Authors: R. Cytron IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NY IBM Research Division, T. J. Watson Research Center, Yorktown Heights, NYView Profile , M. Hind Courant Institute, New York University, 251 Mercer St., New York, NY Courant Institute, New York University, 251 Mercer St., New York, NYView Profile , W. Hsieh Laboratory for Computer Science, Massachusetts Institute, Technology, Cambridge, MA Laboratory for Computer Science, Massachusetts Institute, Technology, Cambridge, MAView Profile Authors Info & Claims PLDI '89: Proceedings of the ACM SIGPLAN 1989 conference on Programming language design and implementationJune 1989 Pages 54–68https://doi.org/10.1145/73141.74823Published:21 June 1989Publication History 37citation653DownloadsMetricsTotal Citations37Total Downloads653Last 12 Months44Last 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 Ron Cytron, Michael Hind, Wilson C. Hsieh |
PLDI | 3 |
| 1989 | Automatic generation of nested, fork-join parallelism
Michael G. Burke, Ron Cytron, Jeanne Ferrante, Wilson C. Hsieh |
J. Supercomput. | 4 |
| 1988 | A framework for determining useful parallelismabstractAn approach to finding and forming parallel processes for both sequential and parallel programs is presented. The approach is presented in a framework that can create useful parallelism for a variety of parallel architectures. The framework makes use of a control dependence graph to capture maximal parallelism, a process tree to expose useful parallelism, renaming and storage segregation to reduce data dependencies, and an architecture-specific cost analyzer to evaluate the effectiveness of the potential processes. The framework is currently being implemented. Frances E. Allen, Michael G. Burke, Ron Cytron, Jeanne Ferrante, Wilson C. Hsieh |
ICS | 5 |