1. A method of executing a job submitted for execution in a computer system, the job comprising one or more executable applications in the computer system and the computer system having a plurality of different allowed hardware configurations, the method comprising: receiving the job submitted for execution; identifying one or more representative samples of the job, the one or more representative samples being a part of the job; executing the job in two phases, an experimental phase in which the job is partially executed and a completion phase in which a remainder of the job is executed, where in the experimental phase, each representative sample is executed with each different allowed hardware configuration of the computer system; collecting execution data including speed of execution and energy used in each hardware configuration during execution of the one or more representative samples and selecting a suitable hardware configuration for the remainder of the submitted job by taking speed of execution and energy use into account; executing the remainder of the job in the completion phase with the suitable hardware configuration.