A new generation of data parallel languages have been proposed whereby
a user specifies how data structures are to be distributed amongst th
e processor nodes of a distributed-memory machine. Based on this infor
mation, the compiler then generates code for the parallel application.
Although this approach significantly simplifies the development of th
e initial version of a parallel application, selection of good data di
stributions leading to efficient computations is often quite difficult
. Therefore, performance debuggers are needed to yield insights into t
he data distribution effects. On the other hand, most of the existing
approaches to performance debugging are very general and thus do not p
rovide the user feedback in terms of the high level programming model
or the source code of the parallel application. In this paper, we desc
ribe a novel approach to performance debugging of data parallel progra
ms. The design and implementation of a visual performance debugger is
described that is specifically targeted to meet the performance debugg
ing requirements of a data-parallel programming model based on user-sp
ecified data distributions. The performance debugger is part of an int
egrated programming environment, called EPPP, which also supports a da
ta parallel compiler and a parallel architecture simulator. Thus devel
opment and performance debugging of an application may be done either
on the real hardware or by using the simulator. The code for EPPP can
be obtained free of cost (contact web address, http://www.crim.ca/apar
).