Patent ID: 8813056

Claim:
A method of executing a program with a first programmable device from a plurality of programmable devices, the method comprising: identifying a plurality of execution states of the program; executing the program on each of the plurality of programmable devices; collecting statistical data associated with the execution states encountered during execution by the plurality of programmable devices, said collecting being performed by each of the plurality of programmable devices; uploading the collected statistical data from the plurality of programmable devices to a common profiling apparatus; assigning device operating points to respective ones of the execution states, using an optimization that depends on a combination of the collected statistical data from the plurality of programmable devices; and setting device operating points of the first programmable device in the respective execution states to the assigned device operating points for the execution states during subsequent execution of the program by the first programmable device, including setting multiple different operating points for the first programmable device based upon the collected statistical data from all of the programmable devices, each operating point corresponding to a different execution state carried out by the first programmable device.