Patent ID: 8392168

Claim:
A method to predict performance of an entire application based on estimating and reusing performance information of execution paths measured during a simulation of the application by a computer for a target system, comprising: selecting for the target system a given set of architectural and micro-architectural parameters; executing instructions of a simulator, the simulator having an emulating module, a profiling module, a collecting module, and an estimating module, to simulate the application for the target system, wherein executing the simulator instructions includes: executing instructions of the emulating module to tag a beginning of each basic block of code with one entry point and one exit point for the entire application before execution, to emulate each tagged basic block of code in the entire application, and to invoke a profiling module; executing instructions of the profiling module that are continuously active throughout the simulation during both a non-measurement phase and a measurement phase of the simulation to mark the beginning of all basic blocks of code to track paths, wherein executing instructions of the profiling module, comprises; collecting a functional execution pattern of the tagged basic blocks of code including paths, executed by the emulating module, and collecting execution counts, during a non-measurement phase of the simulation; collecting the functional execution pattern of the tagged basic blocks of code including paths, executed by the emulating module, and collecting execution counts and additionally calculating cycles per instruction (CPI), during a measurement phase, but not during the non-measurement phase, of the simulation; and identifying paths of interest during the measurement phase and the non-measurement phase based on whether collected execution counts of a particular path in a particular measurement phase and a particular path in a particular non-measurement phase exceed a threshold of execution counts as a percentage of a total number of execution counts in the measurement and the non-measurement phase; and executing instructions of the collecting module to collect and save metrics associated with paths of interest, including collecting CPI based on collected execution counts and timing information gathered only for paths of interest during a measurement phase, and collecting and sorting paths of interest by collected execution counts during a non-measurement phase; and executing instructions of the estimating module to compute a similarity percentage, as determined from execution counts of paths, between a set of paths of interest executed in a last non-measurement phase of the simulation and a set of paths of interest executed in a last measurement phase of the simulation, and compare the computed similarity percentage to a chosen similarity percentage threshold to decide whether to force a new measurement phase for the set of paths of interest in the last non-measurement phase of the simulation.