next up previous
Next: The Ariadne Modeling Up: PDWorks'93 Conference Previous: Introduction

Our Approach

 

Ariadne is a post mortem debugger for massively parallel, MIMD message-passing systems. 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 currently supports four primitive event types: Read, Write, Multicast, and Phase Marker. 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. Ariadne allows the user to view the graph but it does not rely on visualization. Instead, it supports interactive, textual 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 functions that are available for investigating the characteristics of pattern matches and mismatches.





Joydip Kundu kundu@neweng.enet.dec.com