In Chapter 3, we emphasized the importance of using empirical data at each stage of the parallel program design and implementation process, in order to calibrate and validate performance models and implementations. However, we did not address the topic of how to collect or analyze these data. Clearly, a stopwatch is not enough. In this chapter, we survey the various sorts of performance data that may be of interest and describe tools that can assist in the tasks of gathering, analyzing, and interpreting these data.
A discussion of tools for gathering and analyzing performance data is difficult because few standards exist. The various public domain and commercial tools take different approaches, use different performance data file formats, and provide different display technologies. Nevertheless, we can identify basic principles that apply to most existing tools, and can illustrate these principles by describing several popular systems.
We emphasize that performance measurement is not an end in itself but is useful only in the context of a performance analysis methodology such as that described in Chapter 3. Hence, we do not repeat material from Chapter 3 here but base our presentation on the assumption that performance models have been developed and are guiding the data collection and analysis process, thereby allowing us to pose performance questions, identify performance data of interest, and isolate and correct performance problems.
After studying this chapter, you should be familiar with the basic ideas of data collection, data reduction, and data visualization. You should understand the difference between profiles, counts, and execution traces and the role each plays in performance analysis. You should also be familiar with a number of popular performance analysis tools.
© Copyright 1995 by Ian Foster