6 Conclusion
Data partitioning is a major performance factor in HPF programs. To
help the programmer design a good data distribution strategy, we have
studied the evaluation of the communication cost of a program during
the writing of this program.
We have presented here a method to compute the communication volume of
a HPF program. This method is based on the polyhedral model. So, we
are able to handle loop nests with affine loop bounds and affine array
access functions. Our method is parameterized and machine
independent. Indeed all is done at the language level.
An implementation is done using the polyhedral library and the PIP
software.
Ongoing work includes extending this method to a larger class of
programs and adding compiler optimizations in the model. The last
point is quite important since the pure counting of elements exchanged
is only one of the factors in the actual communication costs. We will
have to recognize special communications patterns as broadcasts which
can be implemented more efficiently than general communications.
We are also integrating this method in the HPF-builder tool
[6].