A Debugger for Flow Graph Based Parallel Applications
Flow graphs provide an explicit description of the parallelization of an application by mapping vertices onto serial computations and edges onto message transfers. The authors present the design and implementation of a debugger for the flow graph based Dynamic Parallel Schedules (DPS) parallelization framework. They use the flow graph to provide both a high level and detailed picture of the current state of the application execution. They describe how reordering incoming messages enables testing for the presence of message races while debugging a parallel application. The knowledge about causal dependencies between messages enables tracking messages and computations along individual branches of the flow graph.