1 Introduction
Parallel computing has become the solution of choice for heavy
scientific computing programs. Unfortunately parallel computers
require considerable knowledge and programming skills to exploit their
full potential. A major mean to reduce the programming complexity is
to use high-level languages. High Performance Fortran (HPF) is such a language. It
follows the data-parallel programming paradigm where the computations
are directed by the data. Indeed, the computations occur on the
processor that ``owns'' the data being written. So the data
distribution is a very important efficiency factor when programming
with a data-parallel language.
Our goal is to help the programmer find a good data-distribution. We
want a tool that is executed when the program is being written. Work
on such a tool has started at the LIFL with HPF-builder
[6], a tool that interactively displays the arrays as
they are distributed and aligned by the HPF directives. This tool also
allows to change the data distribution graphically.
We propose here a new step in the development of a tool that helps the
programmer understand how data move in its program. Given a
data-distribution, we are able to compute the volume of the
communications generated by a program. We use symbolic computation
tools to stay free of the problem size. All this is done at the
language level, thus retaining portability and machine independence.
This tool is intended as a mean to write a reasonably efficient
program that can be tuned for a particular parallel machine
with profiling systems later.
The sequel of this paper is organized as follows. In Sect.
2 we briefly review related works, then in Sect.
3 we describe the problem we consider and present its
modelization in Sect. 4. We then detail the tools
used to solve our problem along with an example in Sect.
5. And we finally conclude in Sect. 6.