Abstract
In converting sequential programs for execution on distributed memory parallel
processors, the programmer must determine the optimal data decomposition for
the data structures. This task is an extremely complex optimisation problem and
thus is usually performed manually. This chapter describes an X based
visualisation tool called DCompose, which allows a programmer to measure the
efficiency of different data decompositions. The system allows the user to
visualise addressing patterns in the sequential program and then project them
onto a parallel machine. It allows the user to define various work allocation
and data placement strategies in the code. The instrumentation mechanism allows
experimentation with different cache sizes and structures. It also allows users
to experiment with different software based cache coherence strategies, by
illustrating the point in the source code where cache incoherence occurs. A
major feature of the system is that the visualisation can be performed on a
sequential program without the additional complications of parallel program
porting and debugging. Some examples are provided which illustrate the process.