Tuning software execution environments using Bayesian models
First Claim
1. A system, comprising:
- one or more computing devices of an optimization service implemented at a provider network;
wherein the one or more computing devices are configured to;
identify, as a candidate for performance optimization, an execution environment comprising one or more software components, wherein the execution environment has a plurality of tunable parameters, and wherein at least one software component of the one or more software components is instantiated at a particular computing resource of the provider network;
receive, based at least in part on input via a programmatic interface from a client on whose behalf the execution environment is configured, (a) a definition of an objective function that specifies a non-linear transformation of one or more execution results produced by the one or more software components to produce one or more objective function values to be optimized, and (b) a respective plurality of permissible settings for at least a first tunable parameter and a second tunable parameter of the plurality of tunable parameters;
generate, corresponding to the execution environment, a Bayesian model using Gaussian process priors, wherein input to the Bayesian model includes the one or more objective function values and output of the Bayesian model includes settings for at least the first and second tunable parameters;
perform a plurality of iterations of execution of the Bayesian model, including a first iteration and a second iteration, wherein input model parameters for the second iteration are determined based at least in part on an evaluation of the objective function over a set of execution results obtained from the execution environment, wherein the set of execution results are obtained using settings indicated for at least the first and second tunable parameters in output model parameters produced by the first iteration; and
in response to a determination that an optimization goal corresponding to the execution environment has been attained according to the objective function, store settings of at least the first and second tunable parameters which correspond to attainment of the optimization goal.
1 Assignment
0 Petitions
Accused Products
Abstract
An optimizer for a software execution environment determines an objective function and permitted settings for various tunable parameters of the environment. To represent the execution environment, the optimizer generates a Bayesian optimization model employing Gaussian process priors. The optimizer implements a plurality of iterations of execution of the model, interleaved with observation collection intervals. During a given observation collection interval, tunable parameter settings suggested by the previous model execution iteration are used in the execution environment, and the observations collected during the interval are used as inputs for the next model execution iteration. When an optimization goal is attained, the tunable settings that led to achieving the goal are stored.
62 Citations
21 Claims
-
1. A system, comprising:
-
one or more computing devices of an optimization service implemented at a provider network; wherein the one or more computing devices are configured to; identify, as a candidate for performance optimization, an execution environment comprising one or more software components, wherein the execution environment has a plurality of tunable parameters, and wherein at least one software component of the one or more software components is instantiated at a particular computing resource of the provider network; receive, based at least in part on input via a programmatic interface from a client on whose behalf the execution environment is configured, (a) a definition of an objective function that specifies a non-linear transformation of one or more execution results produced by the one or more software components to produce one or more objective function values to be optimized, and (b) a respective plurality of permissible settings for at least a first tunable parameter and a second tunable parameter of the plurality of tunable parameters; generate, corresponding to the execution environment, a Bayesian model using Gaussian process priors, wherein input to the Bayesian model includes the one or more objective function values and output of the Bayesian model includes settings for at least the first and second tunable parameters; perform a plurality of iterations of execution of the Bayesian model, including a first iteration and a second iteration, wherein input model parameters for the second iteration are determined based at least in part on an evaluation of the objective function over a set of execution results obtained from the execution environment, wherein the set of execution results are obtained using settings indicated for at least the first and second tunable parameters in output model parameters produced by the first iteration; and in response to a determination that an optimization goal corresponding to the execution environment has been attained according to the objective function, store settings of at least the first and second tunable parameters which correspond to attainment of the optimization goal. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method, comprising:
performing, by a network-accessible optimization tool implemented using one or more computing devices; identifying, as a candidate for performance optimization, an execution environment comprising one or more software components, wherein the execution environment has a plurality of tunable parameters; receiving, from a client, (a) a definition of an objective function that specifies a non-linear transformation of one or more execution results produced by the one or more software components to produce as output one or more objective function values to be optimized and (b) a respective plurality of permissible settings for at least a first tunable parameter and a second tunable parameter of the plurality of tunable parameters; generating, with respect to the execution environment, a Bayesian model employing a Gaussian process, wherein input to the Bayesian model includes the one or more objective function values and output of the Bayesian model includes settings for at least the first and second tunable parameters; implementing a plurality of iterations of execution of the Bayesian model, including a first iteration and a second iteration, wherein input model parameters for the second iteration are determined based at least in part on an evaluation of the objective function over a set of execution results obtained from the execution environment, wherein the set of execution results is obtained using settings indicated for at least the first and second tunable parameters in output model parameters of the first iteration; and in response to determining that an optimization goal associated with the execution environment has been attained according to the objective function, storing an indication of settings for at least the first and second tunable parameters which correspond to an attainment of the optimization goal. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15)
-
16. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors:
-
receiving, from a client, (a) a definition of an objective function that a non-linear transformation of one or more execution results produced by one or more software components in an execution environment to produce as output one or more objective function values to be optimized and (b) a respective plurality of permissible settings for at least a first tunable parameter and a second tunable parameter of a plurality of tunable parameters of the execution environment; generate, with respect to the execution environment, a Bayesian model employing a Gaussian process, wherein input to the Bayesian model includes the one or more objective function values and output of the Bayesian model includes settings for at least the first and second tunable parameters; implement a plurality of iterations of execution of the Bayesian model, including a first iteration and a second iteration, wherein input model parameters for the second iteration are determined based at least in part on an evaluation of the objective function over a set of execution results obtained from the execution environment, wherein the set of execution results is obtained using settings indicated for at least the first and second tunable parameters in output model parameters of the first iteration; and store an indication of settings indicated for at least the first and second tunable parameters in output model parameters of a selected iteration of the plurality of iterations of execution. - View Dependent Claims (17, 18, 19, 20, 21)
-
Specification