I will describe an application of machine learning to computer memory management. In most programming languages, a program requests blocks of memory from the runtime system when needed and explicitly frees them up after use. Typically, the runtime system handles all of these requests uniformly, without any regard to how or how long the requested block will be used. In memory-intensive applications, programmers frequently use runtime profiles to analyze their programs' behavior and write special purpose memory management routines tuned for their purposes. Machine learning methods offer the opportunity to automate this process. Barrett and Zorn used a simple lifetime predictor to explore this possibility on a variety of computer programs. I will describe an approach which uses decision trees to do lifetime prediction on the same programs and shows significantly better prediction. Our method also has the advantage that during training we can use a large number of features and let the decision tree automatically choose the relevant subset.
(joint work with Satinder Singh)
Date: Thurs., October 1; Time: 4:15-5:30PM; Place: Cordura 100
Return to seminar schedule.