next up previous
Next: The Ariadne Modeling Up: PDCS'94 Conference Previous: Introduction

Our Approach

Ave/Ariadne is a post mortem debugger for massively parallel systems. Although originally designed for MIMD message-passing system, the current incarnation can also handle shared memory program traces. It is designed for correctness debugging, and it supports the user in investigating global interprocess communication patterns.

Ariadne operates on traces produced by parallel programs.gif Within these traces, processes, identified by integer process ids (PIDs), execute sequences of primitive events. The debugger supports four primitive event types: Read, Write, Multicast, and Phase Marker. This repertoire can easily be extended by the user at the run-time. Reads, Writes, and Multicasts denote interprocess communication, and Phase Markers denote the ends of logical phases of computation. The traces are stored internally in an execution history graph where the nodes represent events and the edges represent communication events; from these traces we can derive Lamport's happened before relation [17]. A number of debuggers provide visualizations of execution history graphs [9,11,12,21] but such visualizations do not scale well for massively parallel systems. Ave/Ariadne supports interactive, textual and graphical explorations of the graph.

Here we briefly describe three aspects of this support: the modeling language, the facilities for manipulating logical temporal orderings, and the visual interface that is available for investigating the characteristics of pattern matches and mismatches.





Joydip Kundu kundu@neweng.enet.dec.com