Investigating Adaptive Compilation Using the Mipspro Compiler

Despite the astonishing increases in processor performance over the last 40 years, delivered application performance remains a critical issue for many important problems. Compilers play a critical role in determining that performance. A modern optimizing compiler contains many transformations that attempt to increase application performance. However, the best combination of transformations is an application-specific issue. Recent systems such as FFTW and ATLAS have demonstrated how code that adapts its behavior to target machine parameters can deliver better performance than code that adopts a single strategy for all machines. Unfortunately, developing these systems required significant amounts of time by experts. Adaptive compilation (systems where the compiler chooses an appropriate set of optimizations and parameters for each application) offer the promise of custom performance similar to FFTW or ATLAS without requiring the time investment of experts. In this paper we detail an experiment with adaptive, feedback-driven blocksize choice. The experiment demonstrates two critical issues. First, an adaptive blocking strategy can automatically produce performance similar to that achieved by ATLAS. This result suggests that we can make customized ATLAS-like performance available, automatically, across a wider range of programs. Secondly, the command-line parametrization of existing commercial and research compilers is inadequate to express the complex strategies that an adaptive system will need. For example, the blocksize parameters to the MIPS compiler are applied uniformly to all loops; for more complex applications, the compiler will need to specify blocksizes on a much finer granularity.

[1]  Gang Ren,et al.  A comparison of empirical and model-driven optimization , 2003, PLDI '03.

[2]  Walid Abu-Sufah,et al.  Improving the performance of virtual memory computers. , 1979 .

[3]  Mary Lou Soffa,et al.  Predicting the impact of optimizations for embedded systems , 2003 .

[4]  Jack J. Dongarra,et al.  Automated empirical optimizations of software and the ATLAS project , 2001, Parallel Comput..

[5]  Monica S. Lam,et al.  A data locality optimizing algorithm , 1991, PLDI '91.

[6]  Keith D. Cooper,et al.  Adaptive Optimizing Compilers for the 21st Century , 2002, The Journal of Supercomputing.

[7]  Robert J. Fowler,et al.  HPCVIEW: A Tool for Top-down Analysis of Node Performance , 2002, The Journal of Supercomputing.

[8]  Michael F. P. O'Boyle,et al.  Embedded Processor Design Challenges , 2002 .

[9]  Yuefan Deng,et al.  New trends in high performance computing , 2001, Parallel Computing.

[10]  Michael F. P. O'Boyle,et al.  Iterative Compilation , 2002, Embedded Processor Design Challenges.

[11]  James R. Larus,et al.  Optimally profiling and tracing programs , 1994, TOPL.

[12]  Steven G. Johnson,et al.  FFTW: an adaptive software architecture for the FFT , 1998, Proceedings of the 1998 IEEE International Conference on Acoustics, Speech and Signal Processing, ICASSP '98 (Cat. No.98CH36181).

[13]  Scott A. Mahlke,et al.  Using profile information to assist classic code optimizations , 1991, Softw. Pract. Exp..

[14]  Yunheung Paek,et al.  Finding effective optimization phase sequences , 2003 .

[15]  Keith D. Cooper,et al.  Optimizing for reduced code space using genetic algorithms , 1999, LCTES '99.