David Bacon's Presentations
[Home] [Publications] [Presentations] [Patents] [Professional Activities] [Resume] [Personal]
PDF PPT The Metronome: A Simpler Approach to Garbage Collection in Real-time Systems
Paper presented by Perry Cheng at the Workshop on Java Technologies for Real-Time and Embedded Systems, Catania, Sicily, November 2003.
True real-time garbage collection, as we have implemented in the Metronome, can greatly simplify the programmer interface for real-time systems over that provided by environments such as the Real-Time Specification for Java (RTSJ).
PDF PPT MJ: A Rational Module System for Java and its Applications
Paper presented by David Grove at the ACM Conference on Object-Oriented Programming Languages, Systems, and Applications, Anaheim, California, October 2003.
Describes a module system for Java that is compatible with the existing Java language but provides significantly improved support for building large, robust, long-lived systems out of modular components. We implemented MJ and converted the Tomcat web application server from using classloaders to using about 30 MJ modules. The resulting system is much easier to install and maintain, and also achieves a 30% speedup.
PDF PPT Controlling Fragmentation and Space Consumption in the Metronome, a Real-time Garbage Collector for Java
Paper presented at the ACM Conference on Languages, Compilers, and Tools for Embedded Systems, San Diego, California, June 2003.
Describes the Metronome real-time garbage collector's mechanisms for limiting fragmentation and the resulting wasted space. The application is characterized in terms of a fragmentation factor λ. For real-world applications λ is very small and the collector only needs to copy a very small number of objects to limit fragmentation.
PDF PPT The Metronome: A Hard Real-time Garbage Collector
Extended presentation of the results published in
POPL 2003; presented at U.C. Berkeley, U.C. Santa Barbara, and Microsoft Research, March 2003.
Describes a real-time garbage collector for uniprocessors, implemented for Java in the Jikes RVM virtual machine. The collector makes use of low-overhead read barriers (4%), and is mostly non-copying. Pause times are low and utilization meets the target within a small range of variation.
PDF PPT A Real-time Garbage Collector with Low Overhead and Consistent Utilization
Paper presented by Perry Cheng at the Thirtieth ACM Symposium on Principles of Programming Languages (POPL), New Orleans, Louisiana, January 2003.
Describes a real-time garbage collector for uniprocessors, implemented for Java in the Jikes RVM virtual machine. The collector makes use of low-overhead read barriers (4%), and is mostly non-copying. Pause times are low and utilization meets the target within a small range of variation.
PDF PPT Space- and Time-Efficient Implementation of the Java Object Model
Paper presented at the European Conference on Object-Oriented Programming (ECOOP), Málaga, Spain, June, 2002.
Shows how the Java object model can be implemented with only one header word. The result is a 14% space savings and 0.6-4% speedup.
PPT Java without the Coffee Breaks: A Nonintrusive Multiprocessor Garbage Collector
Paper presented at the ACM Conference on Programming Language Design and Implementation, Snowbird, Utah, June 20, 2001.
This presentation includes extensive animations showing how the multiprocessor, concurrent, reference counting, cycle collecting garbage collector works.
PDF PS Kava: A Java Dialect with a Uniform Object Model for Lightweight Classes
Paper presented at the Joint ACM Java Grande/ISCOPE Conference, Stanford, California, June 4, 2001.
Kava extends allows the abstractions of object-oriented programming to be applied down to the level of individual bits. This in turn allows the distinction between primitive types (like int) and classes to be eliminated, and for the primitive types to be defined in the language. It also allows rich programmer-defined value types to be added to the language.
An earlier version of this work was presented at the Dagstuhl workshop 451.
PPT A Comparative Evaluation of Parallel Garbage Collectors
Paper presented at the Department of Computer Science, University of Washington, June 5, 2001.
This work quantitatively evaluates the tradeoffs involved between various garbage collection techniques when applied to parallel multiprocessor garbage collection.
PPT Java without the Coffee Breaks: A Nonintrusive Multiprocessor Garbage Collector
Paper presented at the Programming Languages Seminar, U.C. Berkeley, February 6, 2001.
This presentation includes extensive animations showing how the multiprocessor, concurrent, reference counting, cycle collecting garbage collector works.
PDF PS Bit-Level Object-Oriented Programming in Kava
Presented at
Dagstuhl Seminar 451 on Effective Implementation of Object-Oriented Programming Languages, Schloss Dagstuhl, Germany, November 2000.
Bit-Level Object-Oriented Programming allows the abstractions of object-oriented programming to be applied down to the level of individual bits. This in turn allows the distinction between primitive types (like int) and classes to be eliminated, and for the primitive types to be defined in the language. It also allows rich programmer-defined value types to be added to the language.
PDF PS Automatic Memory Management for Java
Presented at the IBM T.J. Watson Research Center, September 1998.
A troika of ideas for improving memory management in Java: a decoupled object model that uses as little as one word of overhead per object; a sandboxing technique that allows user- specified regions of memory to be freed without using any garbage collection; and a scalable, concurrent, incremental, garbage collector.
PDF PS Thin Locks: Featherweight Synchronization for Java
Paper presented at the ACM Conference on Programming Language Design and Implementation, Montreal, Canada, June 1998.
High performance synchronization for Java, now incorporated into most of IBM's Java virtual machines. When implemented in the JDK, mean application speedup was 1.22, maximum speedup was 1.7. Multiprocessor scalability also improved drammatically.
PDF PS Fast and Effective Optimization of Statically Typed Object-Oriented Programs
Ph.D. thesis defended at the University of California, Berkeley, Computer Science Division, December 1997.
An analysis algorithm for languages like C++ and Java, and a collection of optimizations driven by the analysis. This algorithm is now being used in the JAX Java code compression tool (available on alphaWorks) and in an optimizer for a future IBM C++ compiler.
PDF PS Featherweight Monitors with Bacon Bits
Design presented to JavaSoft, Netscape, and IBM, September-October 1997.
An earlier version of Thin Locks for Java, with a fully integrated mechanism for heavy-weight locks.
PDF PS Mysteries of Performance Analysis
Presented at the IBM T.J. Watson Research Center, July, 1997.
Two performance anomalies, and how hardware performance monitoring was used to track them down.
PDF PS Fast Static Analysis of C++ Virtual Function Calls
Paper presented at the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), San Jose, California, October 1996.
Describes and evaluates Rapid Type Analysis, an algorithm that resolves 71% of the dynamic virtual function calls in a suite of seven C++ benchmark programs of significant size. Rapid Type Analysis also reduces compiled program size by 25%, and can be used to help the programmer understand his or her C++ program more easily.
PDF PS Optimization of Pointer-Intensive Programs
Presented at New York University, Department of Computer Science, February 1995.
Automatic transformations on pointer-intsenive programs: multi-tail recursion elimination, pointer expansion, malloc strip-mining, and others.
PDF PS Optimization of Pointer-Intensive Programs
Thesis proposal defended at the University of California, Berkeley, Computer Science Division, March 1994.
Automatic transformations on pointer-intsenive programs: multi-tail recursion elimination, pointer expansion, malloc strip-mining, and others. A more in-depth talk than at NYU.
PDF PS Vectorizing and Parallelizing Compiler Technology
Guest lecture for Computer Science 267, Parallel Systems, at the University of California, Berkeley, Computer Science Division, March 1993. Includes material from my
survey on compiler optimizations
Automatic transformations on pointer-intsenive programs: multi-tail recursion elimination, pointer expansion, malloc strip-mining, and others. A more in-depth talk than at NYU.
PS The Failure of Optimization: Case Studies in Parallelization of Scientific Applications
Presented at the University of California, Berkeley, Computer Science Division, 1992. Includes material from my
M.S. thesis.
Three scientific applications and why compiler optimization failed to improve performance, and the manual optimizations that succeeded.
PS Optimistic Parallelization of Communicating Sequential Processes
Paper presented at the Third ACM Symposium on Principles and Practices of Parallel Programming, July 1991.
A method for optimistically parallelizing any sequential computation in a distributed system when the result of the first part of the compuation can be guessed with reasonably high probability.
PS Hardware-Assisted Replay of Multiprocessor Programs
Paper presented at the ACM SIGPLAN/SIGOPS Workshop on Parallel and Distributed Debugging, Santa Cruz, California, December 1991.
Design and simulation results for a bus-monitoring device that logs memory transactions to allow deterministic replay of parallel programs on a shared-memory multiprocessor.
PDF PS File System Measurements and their Application to the Design of Efficient Operation Logging Algorithms
Paper presented at the Tenth IEEE Symposium on Reliable Distributed Systems, Pisa, Italy, September, 1991.
Demonstrates that deterministic replay can be achieved by only logging 1% of all file system operations, by using the volatile logging technique.
Get Acrobat Reader Get Ghostview Get Powerpoint Viewer Created with Emacs
[ Privacy ][ Legal ][ Search ][ Contact ]