Show simple item record

dc.contributor.advisorSrikant, Y N
dc.contributor.authorVaswani, Kapil
dc.date.accessioned2005-12-07T08:45:35Z
dc.date.accessioned2018-07-31T04:38:14Z
dc.date.available2005-12-07T08:45:35Z
dc.date.available2018-07-31T04:38:14Z
dc.date.issued2005-12-07T08:45:35Z
dc.date.submitted2003
dc.identifier.urihttps://etd.iisc.ac.in/handle/2005/174
dc.identifier.srnonull
dc.description.abstractAlthough runtime systems and the dynamic compilation model have revolutionized the process of application development and deployment, the associated performance overheads continue to be a cause for concern and much research. In the first part of this thesis, we describe the design and implementation of an adaptive recompilation framework for Rotor, a shared source implementation of the Common Language Infrastructure (CLI) that can increase program performance through intelligent recompilation decisions and optimizations based on the program's past behavior. Our extensions to Rotor include a low overhead runtime-stack based sampling profiler that identifies program hotspots. A recompilation controller oversees the recompilation process and generates recompilation requests. At the first-level of a multi-level optimizing compiler, code in the intermediate language is converted to an internal intermediate representation and optimized using a set of simple transformations. The compiler uses a fast yet effective linear scan algorithm for register allocation. Hot methods can be instrumented in order to collect basic-block, edge and call-graph profile information. Profile-guided optimizations driven by online profile information are used to further optimize heavily executed methods at the second level of recompilation. An evaluation of the framework using a set of test programs shows that performance can improve by a maximum of 42.3% and by 9% on average. Our results also show that the overheads of collecting accurate profile information through instrumentation to an extent outweigh the benefits of profile-guided optimizations in our implementation, suggesting the need for implementing techniques that can reduce such overheads. A flexible and extensible framework design implies that additional profiling and optimization techniques can be easily incorporated to further improve performance. As previously stated, fine-grained and accurate profile information must be available at low cost for advanced profile-guided optimizations to be effective in online environments. In this second part of this thesis, we propose a generic framework that makes it possible for instrumentation based profilers to collect profile data efficiently, a task that has traditionally been associated with high overheads. The essence of the scheme is to make the underlying hardware aware of instrumentation using a special set of profile instructions and tuned microarchitecture. This not only allows the hardware to provide the runtime with mechanisms to control the profiling activity, but also makes it possible for the hardware itself to optimize the process of profiling in a manner transparent to the runtime. We propose selective instruction dispatch as one possible controlling mechanism that can be used by the runtime to manage the execution of profile instructions and keep profiling overheads under check. We propose profile flag prediction, a hardware optimization that complements the selective dispatch mechanism by not fetching profile instructions when the runtime has turned profiling off. The framework is light-weight and flexible. It eliminates the need for expensive book-keeping, recompilation or code duplication. Our simulations with benchmarks from the SPEC CPU2000 suite show that overheads for call-graph and basic block profiling can be reduced by 72.7% and 52.4% respectively with a negligible loss in accuracy.en
dc.description.sponsorshipMicrosoft Researchen
dc.format.extent4305810 bytes
dc.format.mimetypeapplication/postscript
dc.language.isoen
dc.publisherIndian Institute of Scienceen
dc.rightsI grant Indian Institute of Science the right to archive and to make available my thesis or dissertation in whole or in part in all forms of media, now hereafter known. I retain all proprietary rights, such as patent rights. I also retain the right to use in future works (such as articles or books) all or part of this thesis or dissertation.en
dc.subject.classificationComputer and Information Scienceen
dc.subject.keywordDynamic compilationen
dc.subject.keywordProfile-Guided Optimizationen
dc.subject.keywordComputer Programs - Optimizationen
dc.subject.keywordComputer Programs - Recompilationen
dc.subject.keywordInstrumentation Based Profilersen
dc.subject.keywordBasic Block Profilingen
dc.subject.keywordEdge Profilingen
dc.subject.keywordCall Graph Profilingen
dc.subject.keywordDynamic Optimizationen
dc.subject.keywordRotor Architectureen
dc.subject.keywordCommon Language Infrastructure (CLI)en
dc.subject.keywordProfile Flag Predictionen
dc.titleAn Adaptive Recompilation Framework For Rotor And Architectural Support For Online Program Instrumentationen
dc.typeElectronic Thesis and Dissertationen
dc.degree.nameMSc Engg.en
dc.degree.levelMastersen
dc.degree.grantorIndian Institute of Scienceen
dc.degree.disciplineFaculty of Engineeringen


Files in this item

This item appears in the following Collection(s)

Show simple item record