Tools and techniques for performance measurement and performance improvement in parallel programs

Carl Kesselman · 1991

Programming a parallel computer is inherently more complex than programming a sequential computer. This complexity is due to: (1) additional design parameters, such as program partitioning and task to processor mapping, and (2) nonintuitive performance tradeoffs. Because of this complexity, it is inevitable that the initial design of a program will not utilize the available processing resources as effectively as possible. In this dissertation, we investigate methods for understanding and improving the performance of parallel programs. There are two aspects to this work: measurement and presentation. Our approach is to base performance measurement on extending execution profiling to parallel programs. Although profiling has long been recognized as a valuable tool in sequential programming, it's value to parallel programs has not been extensively investigated. In this dissertation we show that there are compelling advantages to profiling over other forms of measurement in parallel programs. We develop a set of low overhead techniques for measuring an execution profile and integrate these techniques into a parallel programming system called PCN. To present a parallel execution profile to a programmer, we have developed a performance visualization tool called Gauge. Gauge is unique in its simple and concise method of data presentation and its use of interactive data analysis techniques to aid in the comprehension of multidimensional performance data. To demonstrate the effectiveness of our approach, we examine the performance of a large parallel application executing on 160 processors. Using the tools and techniques developed in this thesis, the execution time of the application is reduced by almost 20%.

Read the paper · More papers on PaperTik