Font Size: a A A

COBRA: A framework for continuous profiling and binary re-adaptation

Posted on:2009-11-07Degree:Ph.DType:Thesis
University:University of MinnesotaCandidate:Kim, JinpyoFull Text:PDF
GTID:2448390005455542Subject:Computer Science
Abstract/Summary:
This thesis presents COBRA (Continuous Binary Re-Adaptation), a dynamic binary optimization framework, for single-threaded and multithreaded applications. It includes components for collective monitoring and dynamic profiling, profile and trace management, code optimization and code deployment. The monitoring component collects the hot branches and performance information from multiple working threads with the support of OS and the hardware performance monitors. It sends data to the dynamic profiler. The dynamic profiler accumulates performance bottleneck profiles such as cache miss information along with hot branch traces. The optimizer generates new optimized binary traces and stored them in the code cache. It is currently implemented on the Itaniurn 2 based CMP. SNIP and cc-NUMA systems.; This thesis proposes new phase detection schemes and hardware support, especially for dynamic optimizations, that effectively identify and accurately predict program phases by exploiting program control flow information. The sampled Basic Block Vector (BBV)-based and sampled Hot Working Set (HWSET)-based program phase detection schemes are studied. We showed that Sampled HWSET-based program phase detection scheme had higher phase coverage and longer stable phase compared to sampled BBV-based program phase detection scheme. We also propose dynamic code region (DCR)-based program phase detection hardware for dynamic optimization systems. This thesis also proposes a persistent dynamic profile management scheme for continuous reoptimization. The code region based profile manager stores dynamic control flow information including hot paths and loops. It classifies them according to entropy calculated from the frequency vectors of taken branches and load latencies. The profile characterization and classification minimize the explosion of persistent runtime profiles and the overhead of profile collection for continuous reoptimization.; Based on the COBRA framework, we implemented two dynamic compiler optimizations to reduce the impact of coherent memory accesses in OpenMP NAS parallel benchmarks. Using OpenMP NAS parallel benchmarks, we show how COBRA can adaptively choose appropriate optimizations according to observed changing runtime program behavior. The optimizations improve the performance of OpenMP NAS parallel benchmarks (BT, SP, LU, FT, MG, CG) up to 15% with an average of 4.79 on a 4-way Itanium 2 SMP server, and up to 68% with an average of 17.5% on a SGI Altix cc-NUMA system.
Keywords/Search Tags:COBRA, Openmp NAS parallel benchmarks, Continuous, Binary, Dynamic, Framework, Program phase detection
Related items