Patent Document ID: 9495139
Application ID: 13981164
Patent Flag: 1

Claim One:
1. A method, comprising: providing, in at least one computing device, a plurality of different implementations of an elastic function; obtaining, in the at least one computing device, a plan for selecting an efficient implementation of the elastic function from the plurality of different implementations of the elastic function, the plan being determined based at least in part on a performance evaluation of each of the plurality of different implementations of the elastic function for a plurality of different computing device configurations, each of the plurality of different computing device configurations specifying at least one heterogeneous resource that comprises a combination of at least two different programmable hardware components, each of the at least two different programmable hardware components having a different hardware architecture, the performance evaluation being determined by: executing one of the plurality of different implementations for a first subset of a plurality of input parameters to generate a plurality of samples, each of the plurality of samples includes a resulting execution time; generating interpolation data for a second subset of the plurality of input parameters based at least upon the resulting execution time for the plurality of samples and a predefined accuracy requirement associated with the plurality of samples, the interpolation data comprising a plurality of linear trends that satisfy the predefined accuracy requirement; selecting a subset of the interpolation data to generate an implementation performance graph that provides an estimated execution time for the plurality of input parameters for the one of the plurality of different implementations, wherein the selection of the subset of interpolation is based at least in part on which portion of the interpolation data uses a least number of the plurality of linear trends to represent a range of possible combinations of the plurality of input parameters for the one of the plurality of different implementations; executing, in the at least one computing device, an application that calls the elastic function; and selecting, in the at least one computing device, a selected implementation of the different implementations of the elastic function during execution of the application based at least in part on the plan and a current computing device configuration.