Patent ID: 8819652

Claim:
A computerized method for optimizing a system, comprising: defining a parameter space comprising one or more—parameters corresponding to the system, an application executed on the system, or a combination thereof; determining one or more search functions to select a parameter from the parameter space or to select a parameter combination for evaluating a desired characteristic of the system; selecting at least one parameter or parameter combination from the parameter space using the one or more search functions which are defined as selected parameters; reconfiguring source code corresponding to the application to generate reconfigured source code before compilation of the source code into executable code so as to receive the selected parameter or the selected parameter combination and the one or more search functions; invoking a creation command for preparing the application for execution using the selected parameter or the selected parameter combination, wherein invoking the creation command comprises creating a binary representation of the reconfigured source code; invoking an execution command that controls execution of the binary representation of the reconfigured source code by selectively configuring one or more parameterized compiler flags, command line arguments, environment variables, data files to be read in by the application at run time, or combinations thereof, and executing the application using the selected parameter; monitoring the execution of the application and recording metrics associated with the application, wherein the application is programmed to receive the selected parameters, each of the selected parameters turned on or turned off by preprocessor definitions at compile time or through conditional execution at runtime such that the preprocessor definitions feedback into a preprocessor prior to compilation of the reconfigured source code; and updating the one or more search functions for iteratively selecting another parameter or another parameter combination from the parameter space that improves the desired characteristic of the system based on the recorded metrics and executing the application using the selected another parameter or selected another parameter combination.