Login
Computer Science @ Rochester
Tuesday, May 16, 2006
11:00 AM
CSB 209
Ph.D. Thesis Proposal
Kirk Kelsey
University of Rochester
Resource-Aware Dynamic Memory Organization
Application performance has always been a concern for programmers, and a great deal of effort has gone into improving execution speeds. On today's computer systems, performance is increasingly out of the hands of the programmer. Applications run on a platform many layers deep that increasingly includes a virtual machine. Designing programs to perform optimally without forehand knowledge of the entire platform is not viable.

Systems such as a Java virtual machine are typically able to perform reasonably under a range of environmental variables. They are designed to make moderate choices and avoid catastrophic degradation. As a side effect of their conservative design, JVMs do not take advantage of opportunities that may present themselves; they fail to leverage extra memory when it may be useful, or to streamline their usage to improve performance.

One reason many systems cannot make better decisions is that they are not aware of the availability of resources within the larger system in which they operate. We present a resent extension to the typical memory management system that allows it to improve system throughput. Program-level adaptive memory management optimizes a Java program's heap size at runtime, and leads to average execution speeds 1.6 to 6.5 times as fast as the default virtual machine heap sizing (depending on the garbage collector). Building from this recent work, we continue with a series of proposed extensions to memory systems. We explore the possibilities of adaptive data structures that leverage resource information to improve access times. Finally we propose an API to allow greater control over memory management decisions at the program level.