PAMM: Program-level Adaptive Memory Management

Garbage collected programs are increasingly run on today’s multi-processor, multi-core, and multi-threaded machines.  The traditional way of manually specifying the heap size becomes increasingly problematic.  Since the system load may change dynamically and unpredictably,  being conservative may leave most of the system memory unused,  while being aggressive may lead to severe contention.   Memory sharing makes classical demand-based memory performance model unsuitable for describing multiple VMs with GC.   As new performance model we introduce a quantitative notion called time-memory curve and use it to predict the performance of memory sharing in this memory sharing context.   Next we propose a resource-based garbage collection system called program-level adaptive memory management (PAMM) .   PAMM monitors the progam's behavior and sometimes the behavior of other programs that share the memory.   PAMM enables the progam to adjust its memory demand within the range allowed by available memory resources.   

The PAMM project is a collaboration between Rochester and Canisus College.  A technical report on PAMM in shared environment is found in

Jonathan Bard,  Stephen Kane,  Elizabeth Keudel,   Matthew Hertz,   Canisius College
Tongxin Bai,   Kirk Kelsey,  Chen Ding,   University of Rochester