Phase Complexity Surfaces

Example Phase Complexity Surface

Most programs exhibit time-varying execution behavior, i.e., a program execution typically goes through a number of program phases during its execution, exhibiting relatively homogeneous behavior within a phase and distinct behavior across phases.

Phase complexity surfaces [1] can be used to characterize the phase behavior of a program execution across various time scales in an intuitive manner. The phase complexity surfaces incorporate metrics that characterize phase behavior in terms its most basic elements, namely the number of program phases, the predictability of the program phase sequence, the degree of variability within and across program phases, and the phase behavior's dependence on the time scale granularity.

Phase complexity surfaces can also be used to characterize the phase behavior of the SPEC CPU benchmarks across different program inputs, across multiple platforms and different CPU benchmark suite generations.

The phase complexity surfaces of the MiBench, SPEC CPU2000 and SPEC CPU2006 benchmarks can be downloaded below.

For more information, send an email to Frederik.Vandeputte@elis.UGent.be



[1] Frederik Vandeputte and Lieven Eeckhout. Phase Complexity Surfaces: Characterizing Time-Varying Program Behavior. Proceedings of the Third International Conference on High Performance Embedded Architectures and Compilers (HiPEAC), pages 320 - 334, Januari 2008.

AttachmentSize
disknode/PCS/mibench.tgz403.22 KB
disknode/PCS/spec2000.tgz602.35 KB
disknode/PCS/spec2006.tgz806.28 KB