• DocumentCode
    1506974
  • Title

    Continuous program optimization: Design and evaluation

  • Author

    Kistler, Thomas ; Franz, Michael

  • Author_Institution
    Transmeta Corp., Santa Clara, CA, USA
  • Volume
    50
  • Issue
    6
  • fYear
    2001
  • fDate
    6/1/2001 12:00:00 AM
  • Firstpage
    549
  • Lastpage
    566
  • Abstract
    This paper presents a system in which the already executing user code is continually and automatically reoptimized in the background, using dynamically collected execution profiles as a guide. Whenever a new code image has been constructed in the background in this manner, it is hot-swapped in place of the previously executing one. Control is then transferred to the new code and construction of yet another code image is initiated in the background. Two new runtime optimization techniques have been implemented in the context of this system: object layout adaptation and dynamic trace scheduling. The former technique constantly improves the storage layout of dynamically allocated data structures to improve data cache locality. The latter increases the instruction-level parallelism by continually adapting the instruction schedule to predominantly executed program paths. The empirical results presented in this paper make a case in favor of continuous optimization, but also indicate some of the pitfalls and current shortcomings of continuous optimization. If not applied judiciously, the costs of dynamic optimizations outweigh their benefit in many situations so that no break-even point is ever reached. In favorable circumstances, however, speed-ups of over 96 percent have been observed. It appears as if the main beneficiaries of continuous optimization are shared libraries in specific application domains which, at different times, can be optimized in the context of the currently dominant client application
  • Keywords
    data structures; program compilers; application domains; code image; continuous program optimization; data cache locality; data structures; dynamic trace scheduling; execution profiles; instruction-level parallelism; object layout adaptation; shared libraries; user code; Automatic control; Cache storage; Cost function; Data structures; Design optimization; Dynamic compiler; Dynamic scheduling; Libraries; Parallel processing; Runtime;
  • fLanguage
    English
  • Journal_Title
    Computers, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0018-9340
  • Type

    jour

  • DOI
    10.1109/12.931893
  • Filename
    931893