GGrantIndex
← Search

CAREER: Cooperative System Support for Robust High Performance

$471,145FY2004CSENSF

University Of Massachusetts Amherst, Amherst MA

Investigators

Abstract

Modern software systems are brittle. Today's systems fall over a performance cliff once load crosses a certain threshold due to the ever-steeper memory hierarchy. After this point, if there is any service, it is provided in a haphazard manner that is both unpredictable and uncontrollable. The latency between processors and memory - the memory wall - is large and growing, but even greater latency now exists between main memory and disk - the disk wall. As load increases, the combined working sets of processes can exceed main memory capacity. The resulting paging activity can render a system unresponsive. When paging occurs, the virtual memory manager becomes the de facto scheduler, thwarting load management. Technology trends are conspiring to make this problem more severe in the future. High-quality, high-performance RAM is increasingly expensive. Disk latency is millions of CPU cycles and growing, requiring larger filesystem caches. Garbage-collected languages lika Java and C# lead to larger working sets and worse locality. Finally, data-hungry applications such as multimedia and data mining are placing growing demands on memory. An integrated attack on this problem is proposed by developing cooperative system support that intelligently manages the memory hierarchy. Enabling high performance and providing robustness under load. This approach involves novel adaptive algorithms and cooperation between the compiler, operating system, and run-time systems. The work will develop two synergistic new research areas: 1. Cooperative memory management between the operating system and run-time systems, including coarse-grained and fine-grained garbage collectors, to reduce or eliminate paging. 2. Scheduler-aware virtual memory management to provide predictable scheduling under load. The coarse-grained collector will react to memory load information by reducing application footprint. Models will be developed (using VM information) to allow garbage collectors to perform cost-benefit analyses to choose the best possible heap size. The fine-grained collector will cooperate closely with the virtual memory, selecting appropriate victim pages for eviction by relocating objects to create empty pages, and preventing paging during garbage collection. Compiler programs will be adapted and developed. The analyses will be used to group objects with similar lifetimes onto the same pages. The scheduler-aware virtual memory manager will maintain detailed reference behavior tracking the utility of possible main memory allocations to each process. The scheduler will communicate its intended schedule to the virtual memory manager, which will weigh the utility of each allocation by the proportion of CPU time that the scheduler requests. A utility metric system will enable memory to be provided to each process so that it can run for its CPU proportion and then inform the scheduler when processes cannot be scheduled, so that the scheduler can decide which ones should be deactivated.

View original record on NSF Award Search →