Abstract
Relative debugging is a technique that addresses the problem of debugging
programs that have been developed using evolutionary software techniques.
Recent developments allow relative debugging to be used on programs that have
been ported from serial to parallel architectures or between different parallel
architectures. Such programs may change significantly in the porting process
and this raises many issues for the debugging methodology. This paper examines
the use of relative debugging on a distributed memory application in which
errors were introduced when the code was ported from a sequential to a parallel
architecture. Our debugger, GUARD-2000, is used to compare key data structures
between the two codes even though the parallel data structure has undergone
significant reorganisation when mapped onto a distributed memory platform. We
show how this technique can quickly and accurately pinpoint the source of
errors in the parallel code.