Patent ID: 7996824

Claim:
A computer program product in a recordable-type computer readable medium for creating a synthetic benchmark for a computer program, comprising: instructions for executing the computer program; instructions for recording selected statistical characteristics for each basic block of the executing computer program, wherein the selected statistical characteristics for each basic block comprise: mix distribution statistics regarding a fraction of operations that are an Add instruction type, a Load instruction type and a Store instruction type; statistics regarding basic block size mean and standard deviation; and statistics regarding a frequency distribution of register dependencies for each possible input of each of the instruction types; instructions for using the recorded statistical characteristics to create a sequence of synthetic basic blocks, wherein the instructions for using the recorded statistical characteristics to create a sequence of synthetic basic blocks comprises: instructions for calculating a size for each synthetic basic block from a normal distribution with a mean and standard deviation equal to the statistics regarding basic block size mean and standard deviation, and for each instruction in each synthetic block, picking instruction dependencies using the frequency distribution of register dependencies; and fixing each selected instruction dependency to provide a correct dependency; instructions for receiving hints from a user regarding a machine on which the benchmark is to be run to assist in creating the synthetic benchmarks; instructions for creating a synthetic benchmark using the sequence of synthetic basic blocks and the received hints from a user, wherein the synthetic benchmark is representative of the computer program with respect to the selected statistical characteristics and is in a format that can be executed on a computer; and instructions for outputting the created synthetic benchmark.