The events occurring in the execution of a distributed or parallel application are related by a partial, rather than a total, order. We have developed prototype software that collects such events during program execution and produces a graphical display consistent with the partial order. Such a display can be very helpful in understanding and debugging distributed and parallel applications. However, using only partial-order information does not allow the performance characteristics of an application to be understood. Integrating real-time information with the partial order can provide a display that is useful for understanding both functional and performance aspects of the application. An algorithm is required to adjust the collected real-time information, to ensure that real times are consistent with the partial order. Lamport's clock algorithm provides such an adjustment, but can signi cantly distort the real-time values. It was necessary to develop a more complex algorithm, us...
David J. Taylor, Michael H. Coffin