As discussed in Sections 3.5 and 3.6, parallel programming is an experimental discipline. An analytic performance model is an idealization of program behavior that must be validated by comparison with empirical results. This validation process can reveal deficiencies in both the model and the parallel program. Performance analysis is most effective when guided by an understanding rooted in analytic models, and models are most accurate when calibrated with empirical data.
Because performance data tend to be complex and multidimensional, performance tools are a vital part of any parallel programming toolkit. In this chapter, we have introduced basic techniques and surveyed popular tools for collecting, transforming, and analyzing performance data. At the data collection level, we distinguished between profiles, counters, and event traces. Each approach has a role to play in performance analysis: profile and counter data are easier to obtain and to analyze, while traces can show fine detail. At the data transformation and visualization levels, we have emphasized the importance of data reduction techniques that are able to reduce raw performance data to more meaningful and manageable quantities, and data visualization tools that can facilitate the navigation of large multidimensional data sets.
© Copyright 1995 by Ian Foster