EDBT 2026 Demo / reviewers in the wild / expert
Richard L. Hudson
dblp:40/6797
· DBLP profile ↗
13ranked-venue papers
4as first author
0since 2021 · last 2013
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 7 · 3 first-authorSystems, architecture and hardware · 6 · 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.
| Software engineering, system software, and programming languages
8 papers |
Concurrent programming · 46% Runtime systems and virtual machines · 42% Compilers and program optimization · 6% | |
| Computer architecture, parallel and distributed computing, and storage systems
6 papers |
Parallel and multicore computing · 61% Memory systems · 26% Processor architecture and microarchitecture · 10% |
Topics — the 25 heaviest of 27, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Parallel and multicore computing
parallel programming models |
0.2 | 1 | 2013 | River trail: a path to parallelism in JavaScript · OOPSLA 2013 |
Concurrent programming
transactional memory |
0.2 | 2 | 2008 | Concurrent GC leveraging transactional memory · PPoPP 2008 Enforcing isolation and ordering in STM · PLDI 2007 |
Concurrent programming › transactional memory
software transactional memory |
0.1 | 2 | 2007 | Enforcing isolation and ordering in STM · PLDI 2007 McRT-STM: a high performance software transactional memory system for a multi-core runtime · PPoPP 2006 |
Runtime systems and virtual machines
garbage collection |
0.1 | 3 | 2008 | Concurrent GC leveraging transactional memory · PPoPP 2008 Garbage Collecting the World: One Car at a Time · OOPSLA 1997 Compiler Support for Garbage Collection in a Statically Typed Language · PLDI 1992 |
Runtime systems and virtual machines › garbage collection
concurrent garbage collection |
0.1 | 1 | 2008 | Concurrent GC leveraging transactional memory · PPoPP 2008 |
Runtime systems and virtual machines
language runtime |
0.1 | 1 | 2007 | Enabling scalability and performance in a large scale CMP environment · EuroSys 2007 |
Concurrent programming
memory models |
0.1 | 1 | 2007 | Enforcing isolation and ordering in STM · PLDI 2007 |
Processor architecture and microarchitecture
chip multiprocessor |
0.1 | 1 | 2007 | Enabling scalability and performance in a large scale CMP environment · EuroSys 2007 |
Parallel and multicore computing
concurrent programming |
0.1 | 1 | 2007 | Open nesting in software transactional memory · PPoPP 2007 |
Parallel and multicore computing
parallel programming runtimes |
0.1 | 1 | 2007 | Enabling scalability and performance in a large scale CMP environment · EuroSys 2007 |
Parallel and multicore computing › transactional memory
software transactional memory |
0.1 | 1 | 2007 | Open nesting in software transactional memory · PPoPP 2007 |
Concurrent programming › transactional memory
nested transactions |
0.1 | 1 | 2006 | McRT-STM: a high performance software transactional memory system for a multi-core runtime · PPoPP 2006 |
Programming languages and type systems › dynamic languages
javascript |
0.0 | 1 | 2013 | River trail: a path to parallelism in JavaScript · OOPSLA 2013 |
Runtime systems and virtual machines
dynamic compilation |
0.0 | 1 | 2004 | Prefetch inection based on hardware monitoring and object metadata · PLDI 2004 |
Compilers and program optimization › dynamic optimization
profile-guided optimization |
0.0 | 1 | 2004 | Prefetch inection based on hardware monitoring and object metadata · PLDI 2004 |
Memory systems
cache |
0.0 | 1 | 2004 | Prefetch inection based on hardware monitoring and object metadata · PLDI 2004 |
Memory systems › cache
cache miss |
0.0 | 1 | 2004 | Prefetch inection based on hardware monitoring and object metadata · PLDI 2004 |
Memory systems › cache › prefetching
linked data structure prefetching |
0.0 | 1 | 2004 | Prefetch inection based on hardware monitoring and object metadata · PLDI 2004 |
Memory systems › cache
prefetching |
0.0 | 1 | 2004 | Prefetch inection based on hardware monitoring and object metadata · PLDI 2004 |
Parallel and multicore computing
transactional memory |
0.0 | 1 | 2007 | Open nesting in software transactional memory · PPoPP 2007 |
Parallel and multicore computing › synchronization
fine-grained locking |
0.0 | 1 | 2006 | McRT-STM: a high performance software transactional memory system for a multi-core runtime · PPoPP 2006 |
Parallel and multicore computing › synchronization
lock-based synchronization |
0.0 | 1 | 2006 | McRT-STM: a high performance software transactional memory system for a multi-core runtime · PPoPP 2006 |
Runtime systems and virtual machines › garbage collection
distributed garbage collection |
0.0 | 1 | 1997 | Garbage Collecting the World: One Car at a Time · OOPSLA 1997 |
Distributed systems
distributed object systems |
0.0 | 1 | 1997 | Garbage Collecting the World: One Car at a Time · OOPSLA 1997 |
Programming languages and type systems
statically typed languages |
0.0 | 1 | 1992 | Compiler Support for Garbage Collection in a Statically Typed Language · PLDI 1992 |
Methods — techniques the papers use, named apart from their topics
experimental evaluation · 0.1write buffering · 0.1undo logging · 0.1optimistic concurrency · 0.1conflict detection · 0.1hardware performance monitoring · 0.1garbage collection · 0.1JIT compiler analysis · 0.1transactional memory · 0.1mature object space · 0.0non-blocking collection · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2013 | River trail: a path to parallelism in JavaScriptabstractJavaScript is the most popular language on the web and is a crucial component of HTML5 applications and services that run on consumer platforms ranging from desktops to phones. However, despite ample amount of hardware parallelism available to web applications on such platforms, JavaScript web applications remain predominantly sequential. Common parallel programming solutions accepted by other programming languages failed to transfer themselves to JavaScript due to differences in programming models, the additional requirements of the web and different developer expectations. Stephan Herhut, Richard L. Hudson, Tatiana Shpeisman, Jaswanth Sreeram |
OOPSLA | 2 |
| 2008 | Concurrent GC leveraging transactional memoryabstractWe predict that the ever-growing number of cores on our desktops will require a re-examination of concurrent programming. Two technologies are likely to become mainstream in response: Transactional memory provides a superior programming model to traditional lock-based concurrency, while Concurrent GC can take advantage of multiple cores to eliminate perceptible pauses in desktop applications such as games or Internet telephony. This paper proposes a combination of the two technologies, producing a synergy that improves scalability while eliminating the annoyance of user-perceivable pauses. Phil McGachey, Ali-Reza Adl-Tabatabai, Richard L. Hudson, Vijay Menon 0002, Bratin Saha, Tatiana Shpeisman |
PPoPP | 3 |
| 2008 | Practical weak-atomicity semantics for java stmabstractAs memory transactions have been proposed as a language-level replacement for locks, there is growing need for well-defined semantics. In contrast to database transactions, transaction memory (TM) semantics are complicated by the fact that programs may access the same memory locations both inside and outside transactions. Strongly atomic semantics, where non transactional accesses are treated as implicit single-operation transactions, remain difficult to provide without specialized hardware support or significant performance overhead. As an alternative, many in the community have informally proposed that a single global lock semantics [18,10], where transaction semantics are mapped to those of regions protected by a single global lock, provide an intuitive and efficiently implementable model for programmers. Vijay Menon 0002, Steven Balensiefer, Tatiana Shpeisman, Ali-Reza Adl-Tabatabai, Richard L. Hudson, Bratin Saha, Adam Welc |
SPAA | 5 |
| 2007 | Enabling scalability and performance in a large scale CMP environmentabstractHardware trends suggest that large-scale CMP architectures, with tens to hundreds of processing cores on a single piece of silicon, are iminent within the next decade. While existing CMP machines have traditionally been handled in the same way as SMPs, this magnitude of parallelism introduces several fundamental challenges at the architectural level and this, in turn, translates to novel challenges in the design of the software stack for these platforms. This paper presents the "Many Core Run Time" (McRT), a software prototype of an integrated language runtime that was designed to explore configurations of the software stack for enabling performance and scalability on large scale CMP platforms. This paper presents the architecture of McRT and discusses our experiences with the system, including experimental evaluation that lead to several interesting, non-intuitive findings, providing key insights about the structure of the system stack at this scale. A key contribution of this paper is to demonstrate how McRT enables near linear improvements in performance and scalability for desktop workloads such as the popular XviD encoder and a set of RMS (recognition, mining, and synthesis) applications. Another key contribution of this work is its use of McRT to explore non-traditional system configurations such as a light-weight executive in which McRT runs on "bare metal" and replaces the traditional OS. Such configurations are becoming an increasingly attractive alternative to leverage heterogeneous computing uints as seen in today's CPU-GPU configurations. Bratin Saha, Ali-Reza Adl-Tabatabai, Anwar M. Ghuloum, Mohan Rajagopalan, Richard L. Hudson, Leaf Petersen, Vijay Menon 0002, Brian R. Murphy, Tatiana Shpeisman, Eric Sprangle, Anwar Rohillah, Doug Carmean, Jesse Fang |
EuroSys | 5 |
| 2007 | Enforcing isolation and ordering in STMabstractTransactional memory provides a new concurrency control mechanism that avoids many of the pitfalls of lock-based synchronization. High-performance software transactional memory (STM) implementations thus far provide weak atomicity: Accessing shared data both inside and outside a transaction can result in unexpected, implementation-dependent behavior. To guarantee isolation and consistent ordering in such a system, programmers are expected to enclose all shared-memory accesses inside transactions. Tatiana Shpeisman, Vijay Menon 0002, Ali-Reza Adl-Tabatabai, Steven Balensiefer, Dan Grossman, Richard L. Hudson, Katherine F. Moore, Bratin Saha |
PLDI | 6 |
| 2007 | Open nesting in software transactional memoryabstractTransactional memory (TM) promises to simplify concurrent programming while providing scalability competitive to fine-grained locking. Language-based constructs allow programmers to denote atomic regions declaratively and to rely on the underlying system to provide transactional guarantees along with concurrency. In contrast with fine-grained locking, TM allows programmers to write simpler programs that are composable and deadlock-free. Vijay Menon 0002, Ali-Reza Adl-Tabatabai, Antony L. Hosking, Richard L. Hudson, J. Eliot B. Moss, Bratin Saha, Tatiana Shpeisman |
PPoPP | 5 |
| 2006 | McRT-Malloc: a scalable transactional memory allocatorabstractEmerging multi-core processors promise to provide an exponentially increasing number of hardware threads with every generation. Applications will need to be highly concurrent to fullyuse the power of these processors. To enable maximum concurrency, libraries (such as malloc-free packages) would therefore need to use non-blocking algorithms. But lock-free algorithms are notoriously difficult to reason about and inappropriate for average programmers. Transactional memory promises to significantly ease concurrent programming for the average programmer. This paper describes a highly efficient non-blocking malloc/free algorithm that supports memory allocation and deallocation inside transactional code blocks. Thus this paper describes a memory allocator that is suitable for emerging multi-core applications, while supporting modern concurrency constructs.This paper makes several novel contributions. It is the first to integrate a software transactional memory system with a malloc/free based memory allocator. We present the first algorithm which ensures that space allocated in an aborted transaction is properly freed and does not lead to a space blowup. Unlike previous lock-free malloc packages, our algorithm avoids atomic operations on typical code paths, making our algorithm substantially more efficient. Richard L. Hudson, Bratin Saha, Ali-Reza Adl-Tabatabai, Ben Hertzberg |
ISMM | 1 |
| 2006 | McRT-STM: a high performance software transactional memory system for a multi-core runtimeabstractApplications need to become more concurrent to take advantage of the increased computational power provided by chip level multiprocessing. Programmers have traditionally managed this concurrency using locks (mutex based synchronization). Unfortunately, lock based synchronization often leads to deadlocks, makes fine-grained synchronization difficult, hinders composition of atomic primitives, and provides no support for error recovery. Transactions avoid many of these problems, and therefore, promise to ease concurrent programming.We describe a software transactional memory (STM) system that is part of McRT, an experimental Multi-Core RunTime. The McRT-STM implementation uses a number of novel algorithms, and supports advanced features such as nested transactions with partial aborts, conditional signaling within a transaction, and object based conflict detection for C/C++ applications. The McRT-STM exports interfaces that can be used from C/C++ programs directly or as a target for compilers translating higher level linguistic constructs.We present a detailed performance analysis of various STM design tradeoffs such as pessimistic versus optimistic concurrency, undo logging versus write buffering, and cache line based versus object based conflict detection. We also show a MCAS implementation that works on arbitrary values, coexists with the STM, and can be used as a more efficient form of transactional memory. To provide a baseline we compare the performance of the STM with that of fine-grained and coarse-grained locking using a number of concurrent data structures on a 16-processor SMP system. We also show our STM performance on a non-synthetic workload -- the Linux sendmail application. Bratin Saha, Ali-Reza Adl-Tabatabai, Richard L. Hudson, Chi Cao Minh, Ben Hertzberg |
PPoPP | 3 |
| 2004 | Prefetch inection based on hardware monitoring and object metadataabstractCache miss stalls hurt performance because of the large gap between memory and processor speeds - for example, the popular server benchmark SPEC JBB2000 spends 45% of its cycles stalled waiting for memory requests on the Itanium® 2 processor. Traversing linked data structures causes a large portion of these stalls. Prefetching for linked data structures remains a major challenge because serial data dependencies between elements in a linked data structure preclude the timely materialization of prefetch addresses. This paper presents Mississippi Delta (MS Delta), a novel technique for prefetching linked data structures that closely integrates the hardware performance monitor (HPM), the garbage collector's global view of heap and object layout, the type-level metadata inherent in type-safe programs, and JIT compiler analysis. The garbage collector uses the HPM's data cache miss information to identify cache miss intensive traversal paths through linked data structures, and then discovers regular distances (deltas) between these linked objects. JIT compiler analysis injects prefetch instructions using deltas to materialize prefetch addresses.We have implemented MS Delta in a fully dynamic profile-guided optimization system: the StarJIT dynamic compiler [1] and the ORP Java virtual machine [9]. We demonstrate a 28-29% reduction in stall cycles attributable to the high-latency cache misses targeted by MS Delta and a speedup of 11-14% on the cache miss intensive SPEC JBB2000 benchmark. Ali-Reza Adl-Tabatabai, Richard L. Hudson, Mauricio J. Serrano, Sreenivas Subramoney |
PLDI | 2 |
| 2003 | Sapphire: copying garbage collection without stopping the worldabstractAbstract The growing use in concurrent systems of languages that require garbage collection (GC), such as Java, is raising practical interest in concurrent GC. Sapphire is a new algorithm for concurrent copying GC for Java. It stresses minimizing the amount of time any given application thread may need to block to support the collector. In particular, Sapphire is intended to work well in the presence of a large number of application threads, on small‐ to medium‐scale shared memory multiprocessors. Sapphire extends previous concurrent copying algorithms, and is most closely related to replicating copying collection, a GC technique in which application threads observe and update primarily the old copies of objects. The key innovations of Sapphire are: (1) the ability to ‘flip’ one thread at a time (changing the thread's view from the old copies of objects to the new copies), as opposed to needing to stop all threads and flip them at the same time; (2) exploiting Java semantics and assuming any data races occur on volatile fields, to avoid a barrier on reads of non‐volatile fields; and (3) working in concert with virtually any underlying (non‐concurrent) copying collection algorithm. Copyright © 2003 John Wiley & Sons, Ltd. Richard L. Hudson, J. Eliot B. Moss |
Concurr. Comput. Pract. Exp. | 1 |
| 2000 | Cycles to Recycle: Garbage Collection on the IA-64abstractThe IA-64, Intel's 64-bit instruction set architecture, exhibits a number of interesting architectural features. Here we consider those features as they relate to supporting garbage collection (GC). We aim to assist GC and compiler implementors by describing how one may exploit features of the IA-64. Along the way, we record some previously unpublished object scanning techniques, and offer novel ones for object allocation (suggesting some simple operating system support that would simplify it) and the Java “jsr problem”. We also discuss ordering of memory accesses and how the IA-64 can achieve publication safety efficiently. While our focus is not on any particular GC implementation or programming language, we draw on our experience designing and implementing GC for the Intel Java Virtual Machine for the IA-64. Richard L. Hudson, J. Eliot B. Moss, Sreenivas Subramoney, Weldon Washburn |
ISMM | 1 |
| 1997 | Garbage Collecting the World: One Car at a TimeabstractA new garbage collection algorithm for distributed object systems, called DMOS (Distributed. Mature Object Space), is presented. It is derived from two previous algorithms, MOS (Mature Object Space), sometimes called the train algorithm, and PMOS (Persistent Mature Object Space). The contribution of DMOS is that it provides the following unique combination of properties for a distributed collector: safety, completeness, non-disruptiveness, incrementality, and scalability. Furthermore, the DMOS collector is non-blocking and does not use global tracing. Richard L. Hudson, Ronald Morrison, J. Eliot B. Moss, David S. Munro |
OOPSLA | 1 |
| 1992 | Compiler Support for Garbage Collection in a Statically Typed LanguageabstractWe consider the problem of supporting compacting garbage collection in the presence of modern compiler optimizations. Since our collector may move any heap object, it must accurately locate, follow, and update all pointers and values derived from pointers. To assist the collector, we extend the compiler to emit tables describing live pointers, and values derived from pointers, at each program location where collection may occur. Significant results include identification of a number of problems posed by optimizations, solutions to those problems, a working compiler, and experimental data concerning table sizes, table compression, and time overhead of decoding tables during collection. While gc support can affect the code produced, our sample programs show no significant changes, the table sizes are a modest fraction of the size of the optimized code, and stack tracing is a small fraction of total gc time. Since the compiler enhancements are also modest, we conclude that the approach is practical. Amer Diwan, J. Eliot B. Moss, Richard L. Hudson |
PLDI | 3 |