I Normally Do Not Look This Good

Matthew Hertz

E-mail: hertzm@canisius.edu
Address: Canisius College
Computer Science Dept.
Buffalo, NY 14208
Phone: (716)888-2436

I started as an Assistant Professor at Canisius College in the Fall of 2005. Fools that they are, they decided to make me an Associate Professor and award me tenure starting Fall of 2011 and then moved me into administration. If you are interested in how anyone could make these mistakes, you can examine my CV (and tell me how, too).

Fall 2014 Course

Fall 2014 Office Hours

  • Tues. 1:00 - 2:15 in BA 207A
  • Wed. 1:00 - 3:00 in BA 207A
  • Fri. 10:00 - 12:00 in BA 207A
  • Or by appointment or just check if my office door is open (it usually is unless my calendar shows me in class or a meeting)

Research

Poor Richard's Memory Manager

While at Canisius, 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

  • Waste Not, Want Not: Resource-based Garbage Collection in a Shared Environment Matthew Hertz, Stephen Kane, Elizabeth Keudel, Tongxin Bai, Chen Ding, Xiaoming Gu, and Jonathan E. Bard, International Symposium on Memory Management (ISMM 2011), San Jose, CA, June 4-5, 2011.
  • Program-Level Adaptive Memory Management, Chengliang Zhang, Kirk Kelsey, Xipeng Shen, Chen Ding, Matthew Hertz, and Mitsunori Ogihara, International Symposium on Memory Managemnt (ISMM 2006), Ottawa, ON, Canada, June 10-11, 2006.
  • Paging, Matthew Hertz, Yi Feng, and Emery D. Berger, ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2005), Chicago, IL, June 12-15, 2005.

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 (postive!) 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

  • Profile-based Pretenuring, Stephen M. Blackburn, Matthew Hertz, Kathryn S. McKinley, J. Eliot B. Moss, Ting Yang, Transactions on Programming Language and Systems (TOPLAS), Volume 29(1), January, 2007.
  • Generating Object Lifetime Traces with Merlin, Matthew Hertz, Steve M. Blackburn, K. S. McKinley, J. Eliot B. Moss, and Darko Stefanovic, Transactions on Programming Language And Systems (TOPLAS), Volume 28(3), May, 2006.
  • Quantifying the Performance of Garbage Collection vs. Explicit Memory Management, Matthew Hertz and Emery D. Berger, Object-Oriented Programming, Systems, Languages and Applications (OOPSLA 2005), San Diego, CA, Oct. 16-20, 2005.
  • Error-Free Garbage Collection Traces: How to Cheat and Not Get Caught, Matthew Hertz, Steve M. Blackburn, K. S. McKinley, J. Eliot B. Moss, and Darko Stefanovic, Proceedings of the International Conference on Measurement and Modeling of Computer Systems (SIGMETRICS 2002), Marina Del Rey, CA, June 15-19, 2002.
  • Pretenuring for Java, Steve M. Blackburn, Sharad Singhai, Matthew Hertz, K. S. McKinley, and J. Eliot B. Moss, Proceedings of the 16th Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA 2001), Tampa, FL, Oct. 14-18, 2001.

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.

Publications