Hu, Chunling. An infrastructure for program power behavior characterization and optimization evaluation. Retrieved from https://doi.org/doi:10.7282/T3BC3ZWC
DescriptionFine-grained program power behavior is useful in both evaluating power optimizations and observing power optimization opportunities. Detailed power simulation is time consuming and often inaccurate. Physical power measurement is faster and objective. However, fine-grained measurement generates enormous amounts of data in which locating important features is difficult, while coarse-grained measurement sacrifices important detail.
This thesis presents a program power behavior characterization infrastructure that identifies program phases, selects a representative interval of execution for each phase, and instruments the program to enable precise and objective power measurement of these intervals to get their time-dependent power behavior. This infrastructure is constituted of three components for instrumentation, phase classification and power measurement, respectively. The Camino compiler, a GCC post-processor, is used to instrument the assembly code of a program on various levels. A phase classification algorithm using infrequent basic blocks and the combination of control-flow information and runtime event counts finds the representative intervals in terms of time-dependent power behavior. These selected intervals accurately characterize the fine-grained time-dependent behavior of the program, as well as accurately
estimate the total energy consumption of a program. The power measurement method enables users to measure any specified region of program execution. A two-level profiling method implemented in this infrastructure maps the measured detailed power behavior back to source code. The accuracy of this infrastructure is validated on a StrongARM SA110 through simulation, and on an Intel Pentium 4 system through physical power measurement.
This thesis also presents the uses of this infrastructure in understanding the power behavior of program components, such as procedures or loops, in finding good threshold for metrics used in dynamic voltage and frequency scaling, and in scheduling simultaneous multi-threaded programs for peak power optimization.