Relative debugging for parallel systems
David Abramson, Gregory R. Watson · 1997
Relative debugging is a system which allows a programmer to compare the state of two executing programs. It is embedded in a conventional debugger, and makes it possible to isolate errors after a program has been modified or "ported" from one system to another. It has found been that relative debugging is useful for finding errors in large scientific programs. The technique is applicable to sequential programs, but is extremely valuable when sequential programs are ported to parallel platforms, because complex errors are often introduced at this stage. Accordingly, we have been investigating the application of relative debugging to parallel programs. Whilst the general approach used for sequential programs can be applied, the implementation becomes much more difficult. We have developed a new execution mechanism based on data-flow semantics, which allows the debugger to control a number of processes. Further, we are currently building a prototype parallel debugger, and are exploring ho...