In this paper we presented two automated techniques for analyzing the performance of DSM applications: waiting time analysis (which determines the causes of idle processor cycles) and communication analysis (which determines the causes of page requests). We described how these techniques are implemented within Carnival, a performance visualization tool, and Treadmarks, a DSM system. We used the Carnival interface and our techniques to analyze the performance of two Splash applications, Water and Ocean, on a DEC Alpha implementation of Treadmarks. Our experience demonstrates that these techniques can be used effectively to understand the causes of poor performance, and to identify specific improvements in the source code.
We are continuing to analyze applications using these techniques, to better understand the limits of our techniques, and to improve the way in which performance information is presented to the user by Carnival. Furthermore, we plan to compare the performance of applications under Treadmarks and Cashmere [9] (a DSM system under development at Rochester), and consider how best to apply our techniques to understanding tradeoffs in the protocols.