Adaptive loop transformations for scientific programs
Rajiv Gupta, Rastislav Bodík · 2002
To facilitate the efficient execution of scientific programs, parallelizing compilers apply a wide range of loop transformations. In some situations it may not be possible to determine the applicability and usefulness of the transformations at compile time. We develop adaptive versions of various loop transformations which lend themselves to efficient application at run time. instead of explicitly applying a transformation at compile time, we generate adaptive code which is able to behave like the transformed code, if so desired, at run time. Therefore an adaptive program can be viewed as expressing multiple ways of executing a program. The selection of the particular execution is based upon run time information. Adaptive programs offer a more practical and powerful alternative to multiversion programs.