Poster 132: Optimizing Performance at Runtime Using Binary Rewriting
TimeWednesday, 20 November 20198:30am - 5pm
DescriptionIn addition to scalability, performance of sequential code in applications is an important factor in HPC. Typically, programs are compiled once, at which time optimizations are applied, and are then run several times. However, not all information relevant for performance optimizations are available at compile-time, restricting optimization possibilities. The generation of specialized code at runtime allows for further optimizations. Performing such specialization on binary code allows for initial code to be generated at compile-time with only the relevant parts being rewritten at runtime, reducing the optimization overhead. For targeted optimizations and effective use of known runtime information, the rewriting process needs to be guided by the application itself, exploiting information only known to the developer.
We describe three approaches for self-guided binary rewriting explicitly guided by the running application and evaluate the performance of the optimized code as well as the performance of the rewriting process itself.