The Performance Principles - 1
As performance engineers at Intel, we are called in many times to analyze/solve application performance issues at various financial industry customers. Typical questions we face are: Why is our application not running well on Intel’s latest processors? How do we improve our application performance? Where and how do we parallelize our serial application? Why is our application not scaling well on multi-core? Why does our application run better on your competitors’ systems?
Our collective experience at Intel suggests that we understand and solve these issues in a data driven manner. In other words, we follow a quantitative performance analysis/tuning methodology. Working at Intel, we often take it for granted and assume that our customers all think like us and use a similar process for measuring and / or improving the performance of their applications. In reality this is not always the case. Whether testing new hardware or attempting to improve performance on existing hardware the underlying processes are the same.
We would like to share our thoughts on our performance methodologies in this community. The figure below summarizes our performance analysis/optimization methodology as an iterative process.
Analysis & Tuning - Iterative Closed Loop Process
Our performance optimization methodology can be viewed as a top down approach as well.
Apply a Top-Down Approach to Tuning
Subsequent postings will dig deeper into the methodology and the individual steps.