High-level adaptive program optimization with ADAPT
- 18 June 2001
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 36 (7), 93-102
- https://doi.org/10.1145/568014.379583
Abstract
Compile-time optimization is often limited by a lack of target machine and input data set knowledge. Without this information, compilers may be forced to make conservative assumptions to preserve correctness and to avoid performance degradation. In order to cope with this lack of information at compile-time, adaptive and dynamic systems can be used to perform optimization at runtime when complete knowledge of input and machine parameters is available. This paper presents a compiler-supported high-level adaptive optimization system. Users describe, in a domain specific language, optimizations performed by stand-alone optimization tools and backend compiler flags, as well as heuristics for applying these optimizations dynamically at runtime. The ADAPT compiler reads these descriptions and generates application-specific runtime systems to apply the heuristics. To facilitate the usage of existing tools and compilers, overheads are minimized by decoupling optimization from execution. Our system, ADAPT, supports a range of paradigms proposed recently, including dynamic compilation, parameterization and runtime sampling. We demonstrate our system by applying several optimization techniques to a suite of benchmarks on two target machines. ADAPT is shown to consistently outperform statically generated executables, improving performance by as much as 70%.Keywords
This publication has 17 references indexed in Scilit:
- Adaptive optimization in the Jalapeño JVMPublished by Association for Computing Machinery (ACM) ,2000
- DynamoPublished by Association for Computing Machinery (ACM) ,2000
- An evaluation of staged run-time optimizations in DyCPublished by Association for Computing Machinery (ACM) ,1999
- C and tccACM Transactions on Programming Languages and Systems, 1999
- Dynamic feedbackPublished by Association for Computing Machinery (ACM) ,1997
- Fast, effective dynamic compilationPublished by Association for Computing Machinery (ACM) ,1996
- A general approach for run-time specialization and its application to CPublished by Association for Computing Machinery (ACM) ,1996
- Parallel programming with PolarisComputer, 1996
- The privatizing DOALL testPublished by Association for Computing Machinery (ACM) ,1994
- Run-time parallelization and scheduling of loopsIEEE Transactions on Computers, 1991