Contents Next

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.


Contents Next