Authors: Jan Treibig (Erlangen Regional Computing Center), Georg Hager (Erlangen Regional Computing Center), Gerhard Wellein (Erlangen Regional Computing Center)
Abstract: Performance engineering has become an addition to traditional software engineering. However, in practice the chaotic approaches used in what was formerly called "performance optimization" are often transferred without change. We propose a systematic performance engineering process constructed around a diagnostic performance model. The performance model is a tool for the developer to acquire knowledge about the interaction of his code with a specific system architecture. In the poster we want to combine the process with the notion of "performance patterns". Patterns provide concrete plans how to understand the observed performance, how to formulate a suitable model, and help decide on optimizations. We use a simplified view on computer architecture containing a suitable level of abstraction for getting an intuitive access to observed performance. Examples are presented for common performance patterns and how they can be detected. Finally we show the application of our performance engineering process on several case studies.