|
|
Runtime Analysis and Design
The Runtime Analysis and Design (RAD) research group investigates
data-centric program analysis technologies and tools for improving software
performance and security. We emphasize data structure and data access analysis
since these play a central role in many performance and security problems. We
apply program analysis and statistical techniques to efficiently monitor and
measure program execution since many data related properties and behaviors are
best observed while a program is running. We also investigate static heap
analysis techniques, such as shape analysis, to supplement our dynamic
observations and analysis. We believe a combination of static and dynamic
program analysis techniques are required to address interesting problems in
this space. In addition to servers, we are currently taking a close look at
the web application and game domains since these appear especially amenable
to a data-centric approach.
Current opportunities we are pursuing include:
- Deep Runtime Analysis. Today, many program analyses are static and existing runtime analyses are either lightweight or offline. We believe the increasing size and complexity of computer systems coupled with hardware support for multiple threads have created an opportunity for more global, online, and heavyweight runtime analyses that still have minimal impact on program execution time.
- Hybrid Static-Dynamic Frameworks. Runtime analysis offers precision and scalability while static analysis provides strong guarantees. Current attempts at combining the two typically use static analysis as a preprocessor to filter what must be monitored and analyzed at runtime. We are exploring more effective ways to combine these techniques and obtain the best of both worlds.
- Heap Data. Static techniques have difficulty efficiently analyzing the program heap making it well suited to runtime analyses or hybrid approaches. This presents several opportunities. The processor-memory performance gap combined with the poor inherent locality of heap data makes the heap a prime target for performance optimization.
In addition, specification, inference, checking, and enforcement of properties related to heap data has been neglected, despite its importance, since many analyses have a code and control-centric bias.
Primary Contact: Trishul Chilimbi
| 
Trishul | 
Sumit | 
Ben | |
Apart from the opportunities listed above, we are also investigating:
- Precise and Scalable Static Analysis (Sumit Gulwani)
This project involves designing and developing precise and efficient program analyses based on abstract interpretation using a variety of techniques: constructing abstract interpreters for new domains, developing techniques to combine the power of different abstract interpreters, extending intraprocedural abstract interpreters to an interprocedural setting. We are also interested in random interpretation, which is a form o
f abstract interpretation that uses randomized algorithms and data structures.
- NinjaWare - Low Overhead Software Monitoring and Analysis (Trishul Chilimbi)
NinjaWare is a new project investigating lightweight continuous monitoring and analysis of software. Our implementation allows us to gather fine-grain temporal information about high frequency events such as program data accesses with very low overhead (< 5%). We are exploring leveraging this infrastructure to build a wide variety of always-on runtime tools ranging from memory leak and data race detectors to program specification/invariant checkers and security monitors.
- Daedalus - Data Locality Optimization Research (Trishul
Chilimbi)
With
the growing processor-memory performance gap, understanding and optimizing a
program's data accesses is becoming increasingly important. Recent
research has proposed several techniques that improve a program's cache
performance by changing its data layout or its data access pattern.
This project proposes to build a system that incorporates profile
information and combines these techniques into an integrated framework for
performing whole program data locality optimizations. It investigates
techniques that efficiently analyze a program's data reference stream to
identify and isolate data abstractions that can serve as a basis for data
locality optimizations. Once identified these data abstractions can be
exploited by providing data restructuring recommendations to a programmer,
generating specialized allocators, and inserting data prefetches.
- Sumit Gulwani, Saurabh Srivastava, and Ramarathnam Venkatesan "Program Analysis as Constraint Solving"
to appear in Programming Languages Design and Implementation '08 (PLDI), June 2008.
- Sigmund Cherem, Trishul Chilimbi, and Sumit Gulwani "Inferring Locks for Atomic Sections"
to appear in Programming Languages Design and Implementation '08 (PLDI), June 2008.
- Sumit Gulwani, Bill McCloskey, and Ashish Tiwari "Lifting Abstract Interpreters to Quantified Logical Domains"
Principles of Programming Languages '08 (POPL), Jan. 2008.
- Emre Kiciman and Benjamin Livshits "AjaxScope: a Platform for Remotely Monitoring the Client-Side Behavior of Web 2.0 Applications"
Symposium of Operating System Principles '07 (SOSP), October 2007 .
- Sumit Gulwani and Nebojsa Jojic "Program Verification as Probabilistic Inference"
Principles of Programming Languages '07 (POPL), Jan. 2007.
- Kapil Vaswani, Aditya V. Nori and Trishul M. Chilimbi. "Preferential Path Profiling: Compactly Numbering Interesting Paths"
Principles of Programming Languages '07 (POPL), Jan. 2007.
- Trishul M. Chilimbi, and Vinod Ganapathy "HeapMD: Identifying Heap-based Bugs using Anomaly Detection"
Architectural Support for Programming Languages and Operating Systems '06 (ASPLOS), Oct. 2006.
- Sumit Gulwani and Ashish Tiwari, "Combining Abstract Interpreters"
Programming Languages Design and Implementation '06 (PLDI), June 2006.
- Trishul M. Chilimbi and Ran Shaham, "Cache-conscious Coallocation of Hot Data Streams"
Programming Languages Design and Implementation '06 (PLDI), June 2006.
- Wenke-Chen, Sanjay Bhansali, Trishul M. Chilimbi, Xiaofeng Gao, and Weihaw Chuang, "Profile-guided Proactive Garbage Collection for Locality Optimization"
Programming Languages Design and Implementation '06 (PLDI), June 2006.
- Trishul M. Chilimbi, and Matthias Hauswirth "Low-Overhead Memory Leak Detection Using Adaptive Statistical Profiling"
Architectural Support for Programming Languages and Operating Systems '04 (ASPLOS) , Oct. 2004.
- Trishul M. Chilimbi, and Martin Hirzel
"Dynamic Hot Data Stream Prefetching for General-Purpose Programs"
Programming Languages Design and Implementation '02 (PLDI),
June 2002.
- Shai Rubin, Rastislav Bodik, and Trishul M. Chilimbi, "An
Efficient Profile-Analysis Framework for Data-Layout Optimizations",
Principles of Programming Languages 2002 (POPL), Jan. 2002.
- Trishul
M. Chilimbi,"Efficient
Representations and Abstractions for Quantifying and Exploiting Data
Reference Locality", Programming Languages Design and
Implementation '01 (PLDI'01), June 2001. (Presentation.)
- Trishul M. Chilimbi, Bob Davidson, and James R. Larus, "Cache-Conscious
Structure Definition" (PDF),
Programming Languages Design and Implementation '99 (PLDI) ,
May 1999.
- Trishul M. Chilimbi, Mark D. Hill, and James R. Larus, "Cache-Conscious
Structure Layout" (PDF),
Programming Languages Design and Implementation '99 (PLDI)
,
May 1999.
We are actively hiring. If you are interested in seeking job opportunities in the Runtime
Analysis and Design research group, please send your resume
(Microsoft Word, HTML, PDF, postscript, or ASCII text format) via email
to: trishulcATmicrosoft.com.
Also, see the Recruiting Web Page for the Programming Languages and Tools area.
We are always looking for exceptional PhD candidates to join us as
interns, especially during the summer months. For more information about
becoming an intern, please visit
our internship website.
- Faculty
- Summer Interns (2000)
- Summer Interns (2001)
- Summer Interns (2002)
- Summer Interns (2003)
- Summer Interns (2004)
- Vinod Ganapathy
(University of Wisconsin, Madison)
- A.J. Shankar (University of California, Berkeley)
- Summer Interns (2005)
- Stephen McCamant
(MIT)
- Kapil Vaswani (Indian Institute of Science, Bangalore)
- Ting Yang (University of Massachusetts, Amherst)
|