A. Al-Shabibi, S. Gerlach, R.D. Hersch, B. Schaeli
International Symposium on Software Testing and Analysis (ISSTA'07), Proc ACM Workdshop on Parallel and Distributed Systems: Testing and Debugging (PADTAD'07), 2007, pp. 14-20
Flow graphs provide an explicit description of the parallelization of an application by mapping vertices onto serial computations and edges onto message transfers. We present the design and implementation of a debugger for the flow graph based Dynamic Parallel Schedules (DPS) parallelization framework. We use the flow graph to provide both a high level and detailed picture of the current state of the application execution. We 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. In addition to common features such as restricting the analysis to a subset of threads or processes and attaching sequential debuggers to running processes, the proposed debugger also provides support for message alterations and for message content dependent breakpoints.
Download the full paper: PDF 320 kb