Dynamic Optimization on Multi-core Platform

Applications involve dynamic linked library or legacy code which is difficult to optimize for static compiler, however, can be applied with optimization techniques by run-time system who focuses on binary code instead of source code. In this paper, we present a run-time system which observes the behaviors of the applications and performs optimizations base on the information it collects, and it works on the multi-core platform to boost performance. First, we establish a framework of traditional dynamic optimization system, base on which we propose the ways to reduce the overhead of the system, including different ways of trace construction and basic block linking. Second, we take advantage of hardware resources that multi-core platform provides and exploit parallelism in our system. Finally, we evaluate the performance of our system and have two major results. First, basic block linking can greatly improve the performance of the system, because without it, the system spends much of its time on interpreting and context switching. Second, the benchmarks that running on the system have a speedup of 1.05 on average, depending on the program's behavior.

[1]  Gurindar S. Sohi,et al.  ARB: A Hardware Mechanism for Dynamic Reordering of Memory References , 1996, IEEE Trans. Computers.

[2]  Brad Calder,et al.  Threaded multiple path execution , 1998, Proceedings. 25th Annual International Symposium on Computer Architecture (Cat. No.98CB36235).

[3]  Antonio González,et al.  Clustered speculative multithreaded processors , 1999, ICS '99.

[4]  Antonia Zhai,et al.  A scalable approach to thread-level speculation , 2000, Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat. No.RS00201).

[5]  Josep Torrellas,et al.  Hardware for speculative parallelization of partially-parallel loops in DSM multiprocessors , 1999, Proceedings Fifth International Symposium on High-Performance Computer Architecture.

[6]  Michael Franz,et al.  Continuous Program Optimization: Design and Evaluation , 2001, IEEE Trans. Computers.

[7]  Vasanth Bala,et al.  Transparent Dynamic Optimization: The Design and Implementation of Dynamo , 1999 .

[8]  Evelyn Duesterwald,et al.  Design and implementation of a dynamic optimization framework for windows , 2000 .

[9]  Kai Wang,et al.  Highly accurate data value prediction using hybrid predictors , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[10]  Robert S. Cohn,et al.  Hot cold optimization of large Windows/NT applications , 1996, Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. MICRO 29.

[11]  Josep Torrellas,et al.  The Need for Fast Communication in Hardware-Based Speculative Chip Multiprocessors , 2004, International Journal of Parallel Programming.

[12]  Josep Torrellas,et al.  The need for fast communication in hardware-based speculative chip multiprocessors , 1999, 1999 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00425).

[13]  Vasanth Bala,et al.  Dynamo: a transparent dynamic optimization system , 2000, SIGP.

[14]  Yale N. Patt,et al.  Putting the fill unit to work: dynamic optimizations for trace cache microprocessors , 1998, Proceedings. 31st Annual ACM/IEEE International Symposium on Microarchitecture.

[15]  Sorin Lerner,et al.  Mojo: A Dynamic Optimization System , 2000 .

[16]  Chen Ding,et al.  Fast Track: A Software System for Speculative Program Optimization , 2009, 2009 International Symposium on Code Generation and Optimization.

[17]  Wei-Chung Hsu,et al.  Dynamic trace selection using performance monitoring hardware sampling , 2003, International Symposium on Code Generation and Optimization, 2003. CGO 2003..