An Event-Driven Multithreaded Dynamic Optimization Framework

Weifeng Zhang, Brad Calder, and Dean Tullsen,

International Conference on Parallel Architectures and Compilation Techniques, September 2005.


Dynamic optimization has the potential to adapt the program's behavior at run-time to deliver performance improvements over static optimization. Dynamic optimization systems usually perform their optimization in series with the application's execution. This incurs overhead which reduces the benefit of dynamic optimization, and prevents some aggressive optimizations from being performed.

In this paper we propose a new dynamic optimization framework called {\em Trident}. Concurrent with the program's execution, the framework uses hardware support to identify optimization opportunities, and uses spare threads on a multithreaded processor to perform dynamic optimizations for these optimization events. We evaluate the benefit of using Trident to guide code layout, basic compiler optimizations, and value specialization. Our results show that using Trident with these optimizations achieves an average 20\% speedup, and is complementary with other memory latency tolerant techniques, such as prefetching.