next up previous
Next: Acknowledgements Up: Cause-Effect Analysis of Parallel Previous: Multiprogramming Effects

Status and Conclusions

The implementation of Carnival has been an ongoing project for more than an year. Currently Carnival comprises about 45000 lines of C and TCL/TK code. We have implemented program tracing for message-passing programs on the IBM SP2, shared-memory programs on the SGI Challenge, Treadmarks programs on clusters of DEC Alphas connected by the DEC Memory Channel, and PVM programs on a network of workstations. Waiting time analysis is implemented in all of these execution environments, protocol analysis is implemented on the Challenge and under Treadmarks, and transaction analysis is implemented for PVM programs that use the PIOUS parallel file system. Based on these implementations, we have used cause-effect analysis to study performance issues in programs that employ message-passing, hardware shared memory, and software distributed shared memory.

Waiting time analysis for the IBM SP2 was the first cause-effect analysis technique we implemented, and that effort required four man-months. We then ported the implementation to the SGI Challenge and a cluster of DEC Alphas running Treadmarks. These efforts required about one man-month each, focused primarily on the monitoring facilities and execution trace preprocessing. By building on the framework we employed for waiting time analysis, we were able to implement protocol analysis in two man-months. This effort also included new profiling facilities in Carnival. Finally, by reusing code from the other two analysis techniques, we were able to implement transaction analysis in three weeks.

About two thirds of the Carnival code (or 30000 lines) is devoted to the user interface and profile generation. Of the 15000 lines devoted to cause-effect analysis, roughly one half are common to all the techniques (and are encapsulated in a library), with the remaining 7500 lines divided roughly equally among the three techniques we've implemented. We believe that additional techniques can be added easily to our framework, and expect each such technique to require about 2000-3000 lines of code to implement.

In summary, our experiences to date suggest that cause-effect analysis can be extremely useful during performance tuning, and that additional techniques can be added to our infrastructure without too much effort. We plan to continue to develop new analysis techniques and add them to Carnival, and apply our current techniques to more applications.


next up previous
Next: Acknowledgements Up: Cause-Effect Analysis of Parallel Previous: Multiprogramming Effects

Wagner Meira
Thu Jan 9 14:27:55 EST 1997