When debugging a distributed application, a display showing the events causing interactions between processes can be very useful. If the number of processes is large, displaying all of them may be impossible or undesirable. In such cases, several processes may be collapsed into a ‘‘cluster’’, with all interactions internal to the cluster omitted from the display. This paper describes the fundamental theoretical constraints on such clustering and the means for effectively displaying clusters. It also describes the particular implementation of clustering provided in a prototype debugger that allows a hierarchical cluster structure to be built and conveniently manipulated.
David J. Taylor