VLDB 2026 Research / reviewers in the wild / expert
Perry Cheng
dblp:78/353
· DBLP profile ↗
31ranked-venue papers
3as first author
0since 2021 · last 2014
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 20 · 2 first-authorSystems, architecture and hardware · 7 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 4Theory of computation · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
15 papers |
Runtime systems and virtual machines · 61% Compilers and program optimization · 27% Programming languages and type systems · 12% | |
| Computer architecture, parallel and distributed computing, and storage systems
11 papers |
Electronic design automation · 38% GPUs and heterogeneous computing · 36% Embedded and real-time systems · 8% |
Topics — the 27 heaviest of 30, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Runtime systems and virtual machines
garbage collection |
0.5 | 10 | 2012 | And then there were none: a stall-free real-time garbage collector for reconfigurable hardware · PLDI 2012 Myths and realities: the performance impact of garbage collection · SIGMETRICS 2004 The garbage collection advantage: improving program locality · OOPSLA 2004 |
Electronic design automation
high-level synthesis |
0.3 | 2 | 2012 | And then there were none: a stall-free real-time garbage collector for reconfigurable hardware · PLDI 2012 Virtualization of heterogeneous machines hardware description in a synthesizable object-oriented language · DAC 2011 |
Runtime systems and virtual machines › garbage collection
real-time garbage collection |
0.3 | 5 | 2012 | And then there were none: a stall-free real-time garbage collector for reconfigurable hardware · PLDI 2012 A real-time garbage collector with low overhead and consistent utilization · POPL 2003 A Parallel, Real-Time Garbage Collector · PLDI 2001 |
Compilers and program optimization › accelerator compilation
heterogeneous compilation |
0.3 | 2 | 2012 | A compiler and runtime for heterogeneous computing · DAC 2012 Lime: a Java-compatible and synthesizable language for heterogeneous architectures · OOPSLA 2010 |
Compilers and program optimization › accelerator compilation
GPU compiler |
0.1 | 1 | 2012 | Compiling a high-level language for GPUs: (via language support for architectures and compilers) · PLDI 2012 |
GPUs and heterogeneous computing
GPU programming |
0.1 | 1 | 2012 | Compiling a high-level language for GPUs: (via language support for architectures and compilers) · PLDI 2012 |
GPUs and heterogeneous computing › GPU programming
high-level language compilation |
0.1 | 1 | 2012 | Compiling a high-level language for GPUs: (via language support for architectures and compilers) · PLDI 2012 |
Programming languages and type systems › domain-specific languages
hardware description languages |
0.1 | 1 | 2011 | Virtualization of heterogeneous machines hardware description in a synthesizable object-oriented language · DAC 2011 |
Electronic design automation › high-level synthesis
hardware compilation |
0.1 | 1 | 2010 | Lime: a Java-compatible and synthesizable language for heterogeneous architectures · OOPSLA 2010 |
GPUs and heterogeneous computing
heterogeneous architecture |
0.1 | 2 | 2011 | Virtualization of heterogeneous machines hardware description in a synthesizable object-oriented language · DAC 2011 Lime: a Java-compatible and synthesizable language for heterogeneous architectures · OOPSLA 2010 |
Embedded and real-time systems
real-time programming |
0.1 | 1 | 2006 | Eventrons: a safe programming construct for high-frequency hard real-time applications · PLDI 2006 |
Runtime systems and virtual machines › garbage collection
parallel garbage collection |
0.1 | 2 | 2001 | A Parallel, Real-Time Garbage Collector · PLDI 2001 On Bounding Time and Space for Multiprocessor Garbage Collection · PLDI 1999 |
Runtime systems and virtual machines › garbage collection
copying garbage collection |
0.0 | 1 | 2004 | The garbage collection advantage: improving program locality · OOPSLA 2004 |
Runtime systems and virtual machines › garbage collection
reference counting |
0.0 | 1 | 2004 | A unified theory of garbage collection · OOPSLA 2004 |
Performance modeling and evaluation
workload characterization |
0.0 | 1 | 2004 | Myths and realities: the performance impact of garbage collection · SIGMETRICS 2004 |
Cloud and datacenter computing › resource management › real-time resource allocation
real-time memory management |
0.0 | 1 | 2012 | And then there were none: a stall-free real-time garbage collector for reconfigurable hardware · PLDI 2012 |
Runtime systems and virtual machines › garbage collection
generational garbage collection |
0.0 | 1 | 1998 | Generational Stack Collection and Profile-Driven Pretenuring · PLDI 1998 |
Runtime systems and virtual machines › garbage collection
pretenuring |
0.0 | 1 | 1998 | Generational Stack Collection and Profile-Driven Pretenuring · PLDI 1998 |
Programming languages and type systems › language implementation
typed intermediate language |
0.0 | 1 | 1996 | TIL: A Type-Directed Optimizing Compiler for ML · PLDI 1996 |
Compilers and program optimization › compiler construction
type-directed compilation |
0.0 | 1 | 1996 | TIL: A Type-Directed Optimizing Compiler for ML · PLDI 1996 |
Memory systems
cache |
0.0 | 1 | 2004 | The garbage collection advantage: improving program locality · OOPSLA 2004 |
Memory systems › data locality
cache locality |
0.0 | 1 | 2004 | Myths and realities: the performance impact of garbage collection · SIGMETRICS 2004 |
Memory systems
memory layout |
0.0 | 1 | 2004 | The garbage collection advantage: improving program locality · OOPSLA 2004 |
Embedded and real-time systems › real-time embedded systems
hard real-time systems |
0.0 | 1 | 2003 | A real-time garbage collector with low overhead and consistent utilization · POPL 2003 |
Parallel and multicore computing
parallel programming runtimes |
0.0 | 1 | 2001 | A Parallel, Real-Time Garbage Collector · PLDI 2001 |
Memory systems
shared memory |
0.0 | 1 | 1999 | On Bounding Time and Space for Multiprocessor Garbage Collection · PLDI 1999 |
Programming languages and type systems › language implementation
functional language implementation |
0.0 | 1 | 1998 | Generational Stack Collection and Profile-Driven Pretenuring · PLDI 1998 |
Methods — techniques the papers use, named apart from their topics
runtime orchestration · 0.3high-level language compilation · 0.3hardware synthesis · 0.3logic synthesis · 0.2behavioral synthesis · 0.2type system · 0.2synthesis · 0.2data-sensitive analysis · 0.1performance counters · 0.1instrumentation · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2014 | Parallel real-time garbage collection of multiple heaps in reconfigurable hardwareabstractDespite rapid increases in memory capacity, reconfigurable hardware is still programmed in a very low-level manner, generally without any dynamic allocation at all. This limits productivity especially as the larger chips encourage more and more complex designs to be attempted. David F. Bacon, Perry Cheng, Sunil Shukla |
ISMM | 2 |
| 2013 | The Liquid Metal IP bridgeabstractProgrammers are increasingly turning to heterogeneous systems to achieve performance. Examples include FPGA-based systems that integrate reconfigurable architectures with conventional processors. However, the burden of managing the coding complexity that is intrinsic to these systems falls entirely on the programmer. This limits the proliferation of these systems as only highly-skilled programmers and FPGA developers can unlock their potential. The goal of the Liquid Metal project at IBM Research is to address the programming complexity attributed to heterogeneous FPGA-based systems. A feature of this work is a vertically integrated development lifecycle that appeals to skilled software developers. A primary enabler for this work is a canonical IP bridge, designed to offer a uniform communication methodology between software and hardware, and that is applicable across a wide range of platforms available off-the-shelf. Perry Cheng, Stephen J. Fink, Rodric M. Rabbah, Sunil Shukla |
ASP-DAC | 1 |
| 2013 | The Shape of Things to Run - Compiling Complex Stream Graphs to Reconfigurable Hardware in Lime
Joshua S. Auerbach, David F. Bacon, Perry Cheng, Steve Fink, Rodric M. Rabbah |
ECOOP | 3 |
| 2013 | The Liquid Metal Blokus Duo DesignabstractThis paper describes the Liquid Metal entry in the 2013 ICFPT Design Competition. The Liquid Metal system provides a high-level language called Lime and a toolchain targeting FPGAs. Lime allowed us to use standard software development processes for programming, debugging, and performance tuning our FPGA design. We believe such iteration and refinement are far more challenging with low-level languages and design tools commonly used for FPGA development. Erik R. Altman, Joshua S. Auerbach, David F. Bacon, Ioana Baldini, Perry Cheng, Stephen J. Fink, Rodric M. Rabbah |
FPT | 5 |
| 2012 | A compiler and runtime for heterogeneous computingabstractHeterogeneous systems show a lot of promise for extracting high-performance by combining the benefits of conventional architectures with specialized accelerators in the form of graphics processors (GPUs) and reconfigurable hardware (FPGAs). Extracting this performance often entails programming in disparate languages and models, making it hard for a programmer to work equally well on all aspects of an application. Further, relatively little attention is paid to co-execution---the problem of orchestrating program execution using multiple distinct computational elements that work seamlessly together. Joshua S. Auerbach, David F. Bacon, Ioana Burcea, Perry Cheng, Stephen J. Fink, Rodric M. Rabbah, Sunil Shukla |
DAC | 4 |
| 2012 | And then there were none: a stall-free real-time garbage collector for reconfigurable hardwareabstractProgrammers are turning to radical architectures such as reconfigurable hardware (FPGAs) to achieve performance. But such systems, programmed at a very low level in languages with impoverished abstractions, are orders of magnitude more complex to use than conventional CPUs. The continued exponential increase in transistors, combined with the desire to implement ever more sophisticated algorithms, makes it imperative that such systems be programmed at much higher levels of abstraction. One of the fundamental high-level language features is automatic memory management in the form of garbage collection. David F. Bacon, Perry Cheng, Sunil Shukla |
PLDI | 2 |
| 2012 | Compiling a high-level language for GPUs: (via language support for architectures and compilers)abstractLanguages such as OpenCL and CUDA offer a standard interface for general-purpose programming of GPUs. However, with these languages, programmers must explicitly manage numerous low-level details involving communication and synchronization. This burden makes programming GPUs difficult and error-prone, rendering these powerful devices inaccessible to most programmers. Christophe Dubach, Perry Cheng, Rodric M. Rabbah, David F. Bacon, Stephen J. Fink |
PLDI | 2 |
| 2011 | Virtualization of heterogeneous machines hardware description in a synthesizable object-oriented languageabstractLime is a new Java-compatible and object-oriented language designed to make programming of reconflgurable hardware significantly more accessible to skilled software developers. Lime programs may run either in software (via Java bytecodes) or in hardware (via behavioral and logic synthesis). This paper illustrates the salient synthesis-oriented features of the language using a photo-mosaic algorithm with inherent bit, pipeline, and data parallelism. The result is a virtual machine abstraction that extends across a heterogeneous architecture comprising a CPU, FPGA, and other computational structures. Joshua S. Auerbach, David F. Bacon, Perry Cheng, Rodric M. Rabbah, Sunil Shukla |
DAC | 3 |
| 2010 | Lime: a Java-compatible and synthesizable language for heterogeneous architecturesabstractThe halt in clock frequency scaling has forced architects and language designers to look elsewhere for continued improvements in performance. We believe that extracting maximum performance will require compilation to highly heterogeneous architectures that include reconfigurable hardware. Joshua S. Auerbach, David F. Bacon, Perry Cheng, Rodric M. Rabbah |
OOPSLA | 3 |
| 2009 | Demystifying magic: high-level low-level programmingabstractThe power of high-level languages lies in their abstraction over hardware and software complexity, leading to greater security, better reliability, and lower development costs. However, opaque abstractions are often show-stoppers for systems programmers, forcing them to either break the abstraction, or more often, simply give up and use a different language. This paper addresses the challenge of opening up a high-level language to allow practical low-level programming without forsaking integrity or performance. Daniel Frampton, Steve Blackburn, Perry Cheng, Robin Garner, David Grove, J. Eliot B. Moss, Sergey I. Salishev |
VEE | 3 |
| 2008 | Tax-and-spend: democratic scheduling for real-time garbage collectionabstractReal-time Garbage Collection (RTGC) has recently advanced to the point where it is being used in production for financial trading, military command-and-control, and telecommunications. However, among potential users of RTGC, there is enormous diversity in both application requirements and deployment environments. Joshua S. Auerbach, David F. Bacon, Perry Cheng, David Grove, Ben Biron, Charlie Gracie, Bill McCloskey, Aleksandar Micic, Ryan Sciampacone |
EMSOFT | 3 |
| 2007 | Generational Real-Time Garbage Collection
Daniel Frampton, David F. Bacon, Perry Cheng, David Grove |
ECOOP | 3 |
| 2007 | Design and implementation of a comprehensive real-time java virtual machineabstractThe emergence of standards for programming real-time systems in Java has encouraged many developers to consider its use for systems previously only built using C, Ada, or assembly language. However, the RTSJ standard in isolation leaves many important problems unaddressed, and suffers from some serious problems in usability and safety. Joshua S. Auerbach, David F. Bacon, Bob Blainey, Perry Cheng, Michael Dawson 0001, Mike Fulton, David Grove, Darren Hart, Mark G. Stoodley |
EMSOFT | 4 |
| 2006 | Demonstration: On-Line Visualization and Analysis of Real-Time Systems with TuningFork
David F. Bacon, Perry Cheng, Daniel Frampton, David Grove, Matthias Hauswirth, V. T. Rajan |
CC | 2 |
| 2006 | Eventrons: a safe programming construct for high-frequency hard real-time applicationsabstractWhile real-time garbage collection has achieved worst-case latencies on the order of a millisecond, this technology is approaching its practical limits. For tasks requiring extremely low latency, and especially periodic tasks with frequencies above 1 KHz, Java programmers must currently resort to the NoHeapRealtimeThread construct of the Real-Time Specification for Java. This technique requires expensive run-time checks, can result in unpredictable low-level exceptions, and inhibits communication with the rest of the garbage-collected application. We present Eventrons, a programming construct that can arbitrarily preempt the garbage collector, yet guarantees safety and allows its data to be visible to the garbage-collected heap. Eventrons are a strict subset of Java, and require no run-time memory access checks. Safety is enforced using a data-sensitive analysis and simple run-time support with extremely low overhead. We have implemented Eventrons in IBM's J9 Java virtual machine, and present experimental results in which we ran Eventrons at frequencies up to 22 KHz (a 45 μs period). Across 10 million periods, 99.997% of the executions ran within 10 μss of their deadline, compared to 99.999% of the executions of the equivalent program written in C. Daniel Spoonhower, Joshua S. Auerbach, David F. Bacon, Perry Cheng, David Grove |
PLDI | 4 |
| 2005 | Derivation and Evaluation of Concurrent Collectors
Martin T. Vechev, David F. Bacon, Perry Cheng, David Grove |
ECOOP | 3 |
| 2005 | High-level real-time programming in JavaabstractReal-time systems have reached a level of complexity beyond the scaling capability of the low-level or restricted languages traditionally used for real-time programming.While Metronome garbage collection has made it practical to use Java to implement real-time systems, many challenges remain for the construction of complex real-time systems, some specific to the use of Java and others simply due to the change in scale of such systems.The goal of our current research is the creation of a comprehensive Java-based programming environment and methodology for the creation of complex real-time systems. Our goals include construction of a provably correct real-time garbage collector capable of providing worst case latencies of 100 μs, capable of scaling from sensor nodes up to large multiprocessors; specialized programming constructs that retain the safety and simplicity of Java, and yet provide sub-microsecond latencies; the extension of Java's "write once, run anywhere" principle from functional correctness to timing behavior; on-line analysis and visualization that aids in the understanding of complex behaviors; and a principled probabilistic analysis methodology for bounding the behavior of the resulting systems.While much remains to be done, this paper describes the progress we have made towards these goals. David F. Bacon, Perry Cheng, David Grove, Michael Hind, V. T. Rajan, Eran Yahav, Matthias Hauswirth, Christoph M. Kirsch, Daniel Spoonhower, Martin T. Vechev |
EMSOFT | 2 |
| 2005 | Syncopation: generational real-time garbage collection in the metronomeabstractReal-time garbage collection has been shown to be feasible, but for programs with high allocation rates, the utilization achievable is not sufficient for some systems.Since a high allocation rate is often correlated with a more high-level, abstract programming style, the ability to provide good real-time performance for such programs will help continue to raise the level of abstraction at which real-time systems can be programmed.We have developed techniques that allow generational collection to be used despite the problems caused by variance in program behavior over the short time scales in which a nursery can be collected. Syncopation allows such behavior to be detected by the scheduler in time for allocation to by-pass the nursery and allow real-time bounds to be met.We have provided an analysis of the costs of both generational and non-generational techniques, which allow the trade-offs to be evaluated quantitatively. We have also provided measurements of application behavior which show that while syncopation is necessary, the need for it is rare enough that generational collection can provide major improvements in real-time utilization. An additional technique, arraylet pre-tenuring, often significantly improves generational behavior. David F. Bacon, Perry Cheng, David Grove, Martin T. Vechev |
LCTES | 2 |
| 2004 | Garbage collection for embedded systemsabstractSecurity concerns on embedded devices like cellular phones make Java an extremely attractive technology for providing third-party and user-downloadable functionality. However, garbage collectors have typically required several times the maximum live data set size (which is the minimum possible heap size) in order to run well. In addition, the size of the virtual machine (ROM) image and the size of the collector's data structures (metadata) have not been a concern for server- or workstation-oriented collectors.We have implemented two different collectors specifically designed to operate well on small embedded devices. We have also developed a number of algorithmic improvements and compression techniques that allow us to eliminate almost all of the per-object overhead that the virtual machine and the garbage collector require. We describe these optimizations and present measurements of the Java embedded benchmarks (EEMBC) of our implementations on both an IA32 laptop and an ARM-based PDA.For applications with low to moderate allocation rates, our optimized collector running on the ARM is able to achieve 85% of peak performance with only 1.05 to 1.3 times the absolute minimum heap size. For applications with high allocation rates, the collector achieves 85% of peak performance with 1.75 to 2.5 times the minimum heap size. The collector code takes up 40 KB of ROM, and collector metadata overhead has been almost completely eliminated, consuming only 0.4% of the heap. David F. Bacon, Perry Cheng, David Grove |
EMSOFT | 2 |
| 2004 | Oil and Water? High Performance Garbage Collection in Java with MMTkabstractIncreasingly popular languages such as Java and C# require efficient garbage collection. This paper presents the design, implementation, and evaluation of MMTk, a Memory Management Toolkit for and in Java. MMTk is an efficient, composable, extensible, and portable framework for building garbage collectors. MMTk uses design patterns and compiler cooperation to combine modularity and efficiency. The resulting system is more robust, easier to maintain, and has fewer defects than monolithic collectors. Experimental comparisons with monolithic Java and C implementations reveal MMTk has significant performance advantages as well. Performance critical system software typically uses monolithic C at the expense of flexibility. Our results refute common wisdom that only this approach attains efficiency, and suggest that performance critical software can embrace modular design and high-level languages. Steve Blackburn, Perry Cheng, Kathryn S. McKinley |
ICSE | 2 |
| 2004 | A unified theory of garbage collectionabstractTracing and reference counting are uniformly viewed as being fundamentally different approaches to garbage collection that possess very distinct performance properties. We have implemented high-performance collectors of both types, and in the process observed that the more we optimized them, the more similarly they behaved - that they seem to share some deep structure. David F. Bacon, Perry Cheng, V. T. Rajan |
OOPSLA | 2 |
| 2004 | The garbage collection advantage: improving program localityabstractAs improvements in processor speed continue to outpace improvements in cache and memory speed, poor locality increasingly degrades performance. Because copying garbage collectors move objects, they have an opportunity to improve locality. However, no static copying order is guaranteed to match program traversal orders. This paper introduces online object reordering (OOR) which includes a new dynamic, online class analysis for Java that detects program traversal patterns and exploits them in a copying collector. OOR uses run-time method sampling that drives just-in-time (JIT) compilation. For each hot (frequently executed) method, OOR analysis identifies the hot field accesses. At garbage collection time, the OOR collector then copies referents of hot fields together with their parent. Enhancements include static analysis to exclude accesses in cold basic blocks, heuristics that decay heat to respond to phase changes, and a separate space for hot objects. The overhead of OOR is on average negligible and always less than 2% on Java benchmarks in Jikes RVM with MMTk. We compare program performance of OOR to static class-oblivious copying orders (e.g., breadth and depth first). Performance variation due to static orders is often low, but can be up to 25%. In contrast, OOR matches or improves upon the best static order since its history-based copying tunes memory layout to program traversal. Xianglong Huang, Steve Blackburn, Kathryn S. McKinley, J. Eliot B. Moss, Zhenlin Wang 0003, Perry Cheng |
OOPSLA | 6 |
| 2004 | Myths and realities: the performance impact of garbage collectionabstractThis paper explores and quantifies garbage collection behavior for three whole heap collectors and generational counterparts: copying semi-space, mark-sweep, and reference counting, the canonical algorithms from which essentially all other collection algorithms are derived. Efficient implementations in MMTk, a Java memory management toolkit, in IBM's Jikes RVM share all common mechanisms to provide a clean experimental platform. Instrumentation separates collector and program behavior, and performance counters measure timing and memory behavior on three architectures.Our experimental design reveals key algorithmic features and how they match program characteristics to explain the direct and indirect costs of garbage collection as a function of heap size on the SPEC JVM benchmarks. For example, we find that the contiguous allocation of copying collectors attains significant locality benefits over free-list allocators. The reduced collection costs of the generational algorithms together with the locality benefit of contiguous allocation motivates a copying nursery for newly allocated objects. These benefits dominate the overheads of generational collectors compared with non-generational and no collection, disputing the myth that "no garbage collection is good garbage collection." Performance is less sensitive to the mature space collection algorithm in our benchmarks. However the locality and pointer mutation characteristics for a given program occasionally prefer copying or mark-sweep. This study is unique in its breadth of garbage collection algorithms and its depth of analysis. Steve Blackburn, Perry Cheng, Kathryn S. McKinley |
SIGMETRICS | 2 |
| 2003 | Controlling fragmentation and space consumption in the metronome, a real-time garbage collector for JavaabstractNow that the use of garbage collection in languages like Java is becoming widely accepted due to the safety and software engineering benefits it provides, there is significant interest in applying garbage collection to hard real-time systems. Past approaches have generally suffered from one of two major flaws: either they were not provably real-time, or they imposed large space overheads to meet the real-time bounds.Our previous work [3] presented the Metronome, a mostly non-copying real-time collector. The Metronome achieves worst-case pause times of 6 milliseconds while maintaining consistent mutator CPU utilization rates of 50% with only 1.5-2.1 times the maximum heap space required by the application, which is comparable with space requirements for stop-the-world collectors.However, that algorithm assumed a constant collection rate, ignored program-dependent characteristics, and lacked a precise specification for when to trigger collection or how much defragmentation to perform. This paper refines the model by taking into account program properties such as pointer density, average object size, and locality of object size. This allows us to bound both the time for collection and consequently the space overhead required much more tightly. We show experimentally that most parameters usually are not subject to large variation, indicating that a small number of parameters will be sufficient to predict the time and space requirements accurately.Our previous work also did not present the details of our approach to avoiding and undoing fragmentation. In this paper we present a more detailed analysis of fragmentation than in previous work, and show how our collector is able to bound fragmentation to acceptable limits. David F. Bacon, Perry Cheng, V. T. Rajan |
LCTES | 2 |
| 2003 | A real-time garbage collector with low overhead and consistent utilizationabstractNow that the use of garbage collection in languages like Java is becoming widely accepted due to the safety and software engineering benefits it provides, there is significant interest in applying garbage collection to hard real-time systems. Past approaches have generally suffered from one of two major flaws: either they were not provably real-time, or they imposed large space overheads to meet the real-time bounds. We present a mostly non-moving, dynamically defragmenting collector that overcomes both of these limitations: by avoiding copying in most cases, space requirements are kept low; and by fully incrementalizing the collector we are able to meet real-time bounds. We implemented our algorithm in the Jikes RVM and show that at real-time resolution we are able to obtain mutator utilization rates of 45% with only 1.6--2.5 times the actual space required by the application, a factor of 4 improvement in utilization over the best previously published results. Defragmentation causes no more than 4% of the traced data to be copied. David F. Bacon, Perry Cheng, V. T. Rajan |
POPL | 2 |
| 2003 | Scalable Room Synchronizations
Guy E. Blelloch, Perry Cheng, Phillip B. Gibbons |
Theory Comput. Syst. | 2 |
| 2001 | A Parallel, Real-Time Garbage CollectorabstractA'(=$B#127$C7D-7E"#%9F<\t>$7'(-7:;<<"G$&%-\t12-*#)+1+)H7IJ->0" ;<<":'(%-\t1+687)29:K*,<\tB>0"$%L.M.D.&%<1+12%&%7<\t'K)2$"#=$)2;\t>%"ON5<'.$D-\t'(="P6 9F%9:<\t'(IF9?B127)+/#'(<&=%$$<\t'($C->0"Q)2$A*0-$%"R<>S-\t>S%-\t'1+)2('C&%<1+12%&%7<\t' -12;<')27D09UT VW84X.D)2&YDG/'( "$\\<\t>]7D0C7)29FC-\t>I 7D'(%-"R9CB0$7./-\tB$\\N5<\t'K&=<\t1+12%&%7)2<>^LE_\\ &%`<\tB'E%-\t'1+)23' -12;<')27D09aX.-$"#%$)2;>0="bN5<'K$)29c/12c->0-12I$)2$%40)27.D0-"R$<9Fd)29c6 /'(-&=7)2&%-\t1.Ne%-7B'(%$%L`M.D#)2$C/0-/,3'C/'(%$3>7$`7D0`%@73>$)2<\t>$c>%&36 =$$-\t'(IfNe<\t'G-!/#'(-&%7)2&%-\t1`)29c/12%9:3>7-7)2<\t>hgi'(%"B0&()+>0;j%@&=%$$)2Z )+>7('12%-Z)+>0;4kD-\t>"1+)+>0;!$7-&l$\\->0"!;\t12<*0-1Z\t-')2-\t*12%$%4^'(%"B&3)+>0; "<\tB*12O-1+12<&%-7)2<>^4->0"G$/,=&3)2-\t17'(%-79F3>7C<\tN12-'(;:->0"!$9:-\t1+1 <*m%&%7$%LonK>i)29c/12%9:3>7-7)2<\t>o*-$%"j<>p7D0G9:<")+[%"q-12;<6 ')27D9r)2$G%Z-\t1+B-7%"p<\t>p-J$=7R<\tNQstvuPwGxq*y3>0&D9:-\t'l$G<>pu B>Jz>73'/')2$bs={{{{#4|-O}~\t68X.-IGd127'(-u/-\t'(&(6K9?B127)+/'(<&%%$6 $<'L!M 7-7)2<>J 0" sPL -7FVb/'(<&%%$$<'($%LjwG-@)29CB09r/-\tB$G7)29:%$:'(-\t>;RN'(<9 j9F$7 o&%<>7'(-$7%4:-i><\t>65)+>0&('(%9:3>7-1G&%<1+12%&%7<\t' X.D%7D3'G;3>0('(-7)2<\t>-\t1<\t'R><7(:... Perry Cheng, Guy E. Blelloch |
PLDI | 1 |
| 2001 | Room synchronizationsabstractWe present a class of synchronization called room synchronizations and show how this class can be used to implement asynchronous parallel queues and stacks with constant time access (assuming a fetch-and-add operation). The room synchronization problem involves supporting a set of m mutually exclusive “rooms” where any number of users can execute code simultaneously in any one of the rooms, but no two users can simultaneously execute code in separate rooms. Users asynchronously request permission to enter specified rooms, and neither the arrival time nor the arrival order nor the desired room of such requests are known ahead of time. We describe an algorithm for room synchronizations, and prove it satisfies a number of desirable properties. We have implemented our algorithm on a Sun UltraEnterprise 10000 multiprocessor. We present experimental results comparing an implementation of a parallel stack using room synchronizations to one using locks, demonstrating a significant scalability advantage for room synchronizations. Guy E. Blelloch, Perry Cheng, Phillip B. Gibbons |
SPAA | 2 |
| 1999 | On Bounding Time and Space for Multiprocessor Garbage CollectionabstractThis paper presents the first multiprocessor garbage collection algorithm with provable bounds on time and space. The algorithm is a real-time shared-memory copying collector. We prove that the algorithm requires at most 2(R(l + 2/k) + N + 5PD) memory locations, where P is the number of processors, R is the maximum reachable space during a computation (number of locations accessible from the root set), N is the maximum number of reachable objects, D is the maximum depth of any data object, and k is a parameter specifying how many locations are copied each time a location is allocated. Furthermore we show that client threads are never stopped for more than time proportional to k non-blocking machine instructions. The bounds are guaranteed even with arbitrary length arrays. The collector only requires write-barriers (reads are unaffected by the collector), makes few assumptions about the threads that are generating the garbage, and allows them to run mostly asynchronously. Guy E. Blelloch, Perry Cheng |
PLDI | 2 |
| 1998 | Generational Stack Collection and Profile-Driven PretenuringabstractThis paper presents two techniques for improving garbage collection performance: generational stack collection and profile-driven pretenuring. The first is applicable to stack-based implementations of functional languages while the second is useful for any generational collector. We have implemented both techniques in a generational collector used by the TIL compiler (Tarditi, Morrisett, Cheng, Stone, Harper, and Lee 1996), and have observed decreases in garbage collection times of as much as 70% and 30%, respectively.Functional languages encourage the use of recursion which can lead to a long chain of activation records. When a collection occurs, these activation records must be scanned for roots. We show that scanning many activation records can take so long as to become the dominant cost of garbage collection. However, most deep stacks unwind very infrequently, so most of the root information obtained from the stack remains unchanged across successive garbage collections. Generational stack collection greatly reduces the stack scan cost by reusing information from previous scans.Generational techniques have been successful in reducing the cost of garbage collection (Ungar 1984). Various complex heap arrangements and tenuring policies have been proposed to increase the effectiveness of generational techniques by reducing the cost and frequency of scanning and copying. In contrast, we show that by using profile information to make lifetime predictions, pretenuring can avoid copying data altogether. In essence, this technique uses a refinement of the generational hypothesis (most data die young) with a locality principle concerning the age of data: most allocations sites produce data that immediately dies, while a few allocation sites consistently produce data that survives many collections. Perry Cheng, Robert Harper 0001, Peter Lee 0001 |
PLDI | 1 |
| 1996 | TIL: A Type-Directed Optimizing Compiler for MLabstractarticle Free Access Share on TIL: a type-directed optimizing compiler for ML Authors: D. Tarditi School of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PA School of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PAView Profile , G. Morrisett School of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PA School of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PAView Profile , P. Cheng School of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PA School of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PAView Profile , C. Stone School of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PA School of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PAView Profile , R. Harper School of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PA School of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PAView Profile , P. Lee School of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PA School of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PAView Profile Authors Info & Claims ACM SIGPLAN NoticesVolume 31Issue 5May 1996 pp 181–192https://doi.org/10.1145/249069.231414Online:01 May 1996Publication History 212citation719DownloadsMetricsTotal Citations212Total Downloads719Last 12 Months39Last 6 weeks2 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 David Tarditi, J. Gregory Morrisett, Perry Cheng, Christopher A. Stone, Robert Harper 0001, Peter Lee 0001 |
PLDI | 3 |