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.