Matthew Hertz |
||||||||
|
Fall 2024 Courses
CSE 404 - Software Project Management
CSE 442 - Software Engineering Concepts |
Office HoursAll of these office hours are in-person and held on a first-come, first-served basis. No appointment is needed for these hours.
If you need to meet outside these times, email me to schedule a meeting |
Poor Richard's Memory Manager |
I have been investigating simple methods to improve the paging performance of garbage collected applications. Unlike past approaches, these are designed to be fully automatic and require little-to-no changes to the existing GC, virtual machine, OS. or program. This has culminated in the creation of Poor Richard's Memory Manager. Using PRMM requires under 100 LoC be added to the existing virtual machine code. It has been used to optimize the paging performance of programs on dedicated machines and in multiprogrammed environments. We have shown that it works for a large variety of GC algorithms: from the BDW whole-heap non-moving collector to MMTk's high performing generational collectors. Publications
|
CS Education |
I was lucky enough to have a number of wonderful teachers when I was first starting in computer science. I cannot emphasize enough the (positive!) impact they made on me. Upon my graduation, I was again lucky to find a school that values teaching undergraduates as much as research. On this vein, I am studying both how we teach computer science and ways that this teaching can be improved. Publications
|
Virtual Memory Behavior |
In a recent study, I found that while copying garbage collection performance is competitive with explicit memory management, this holds only when memory is plentiful. More than just demanding larger heap sizes, garbage collection performance depends on the heap staying memory resident. In experiments with several commercial JVMs, I found that SPECjbb throughput decreases up to 66% once the heap no longer fits within available memory. To solve this problem, I have developed Bookmarking collection (BC) and implemented this within the Jikes RVM and MMTk. When memory pressure is low, BC matches or beats the performance of the next best collector I tested, GenMS. By cooperating with the VM when memory pressure increases, BC executes up to 5x faster than the next best collector and up to 41x faster than GenMS. Publications
|
Merlin |
Merlin is the asymptotically optimal object lifetime computation algorithm I developed and implemented within a trace generator for the Jikes RVM. Leveraging the Merlin algorithm, perfectly accurate traces for all of the benchmarks in jolden can be generated in an afternoon (even using the optimizing compiler!) and traces of the SPEC JVM98 suite of programs requires a weekend. "Merlin traces" are being used/have been used in many places including: UMass, McGill University, Australian National University, and the Universities of Colorado, New Mexico, Texas, and Kent. My trace genertion code (which includes both the Merlin algorithm and slower "brute force" method for lifetime analysis) is now a part of MMTk and included in the Jikes RVM CVS tree. Publications
|
Garbage Collection Traces |
The first publication in which I was involved researched the pretenuring of objects. This research analyzed garbage collection traces to find object allocation sites that can be "pretenured" --- or allocated into longer-lived regions. Using our pretenuring algorithm a program's performance can be improved up to 20%! My Master's project examined the effects granulated garbage collection traces have on simulator fidelity. I found that "granulated" traces (traces that accurately compute which objects are unreachable only after every k bytes of allocation) significantly affect simulator results. While there were methods that may limit the impact of trace granularity, only perfectly accurate traces can guarantee accurate simulations. Publications
|
Dissertation |
For a good detailed look of the different topics I tackled in graduate school (and continue to interest me to this day), you can look through my doctoral thesis. While not as large as some, be warned this file is large. Thesis
|
Older First |
In my first few years of graduate school, I implemented the Older First (OF) garbage collection algorithm within the UMass JVM, the Jalapeno virtual machine, and GCTk for the Jikes RVM. While Darko Stefanovic developed the OF algorithm, I have made several implementation optimizations when I coded it for inclusion with GCTk. I also developed the N-Maturing Older First (NMOF) collector which improves the initial OF design by moving objects that survive several collections into a mature object space. While the performance of NMOF has not formally studied, informal analysis suggests NMOF reduces the work OF performs (as measured by the mark-cons ratio). Publications
|
Compiler Optimizations |
I am very interested in compiler optimizations, especially in compiler optimizations for garbage collection. While I have not yet published anything in this area, I spent the summer of 2002 working as a graduate intern at Sun Labs implementing new compiler optimizations for garbage collection within HotSpot. |