Many current performance analysis systems offer little more than basic measurement and analysis facilities for locating the sources of poor performance, such as load imbalance, communication overhead and synchronization loss. We believe that this is only part of the solution and a system which can provide higher level performance measurement and analysis is highly desirable. In this paper, we describe a new approach to designing performance tuning tools for parallel processing systems. A primary contribution of this work is to explore the way in which the strategies and algorithms used in parallel programs contribute to the poor performance. In order to detect the strategies and algorithms used in parallel programs, a technique called Automatic Program Analysis is used. Our goal is to provide users with higher level performance advices. We present a case study describing how a prototype implementation of our technique was able to identify the performance problem and provide tuning advice.
['Kei Chun Li', 'Kang Zhang']
Tuning parallel program through automatic program analysis