Performance models are employed by practitioners from a wide range of different backgrounds. Perhaps their most common use-case is when used by application programmers to estimate upper bounds to performance. Equipped with this information, programmers can asses the quality of their code and how efficiently it uses the available hardware resources. Moreover, performance models can help programmers locate bottlenecks and guide their efforts to improve application performance. Performance models are, however, also used by processor for the design-space exploration of new processor designs to identify promising configurations that are then examined in more detail by more accurate simulators.
At the chair of computer architecture, several approaches to performance modeling are pursued, including:
- The Execution-Cache-Memory (ECM) model, an analytic performance model to estimate the runtime of loop-based streaming codes with high accuracy
- Simulation is another possibility to analyze the runtime of the software on a given hardware. It takes more time to gather accurate information but is also applicable to non loop-based streaming codes as they can be found in embedded systems for example.