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.