The present application relates generally to an improved data processing apparatus and method and more specifically to mechanisms for dynamically adjusting simulation fidelity in a self-optimized simulation of a complex system, such as a computer system for example.
As today's computing systems become larger and more complex to meet the increased demands for computing resources, simulation of such computer systems has become more important. Such simulation allows individuals to obtain information regarding the operational characteristics of the computing system that may assist individuals in determining how to configure the system to achieve optimal performance as well as address performance issues in the computing system. This software simulation of complex computer systems has become a critical part of the development process for any large system.
Users of such software simulations of complex computer systems typically must make an explicit and manual determination of a tradeoff between simulation speed, or performance, and simulation accuracy, or “fidelity”, for a given complex computer system. “Fidelity” is the accuracy of the simulation compared to the real world system being modeled. Performance is the amount of time it takes to complete the simulation.
Generally, high fidelity simulation models have an adverse impact on performance of the simulation. That is highly accurate or high fidelity simulation models typically take a relatively longer amount of time to complete the simulation whereas less accurate or lower fidelity simulation models take a relatively shorter amount of time to complete the simulation. Sometimes greater fidelity is desirable and other times greater performance is desirable. It is left to the simulation administrators to choose the appropriate models and configure them to achieve the overall desired performance and fidelity.