Compiling Dynamic Mappings with Array Copies

Fabien Coelho
Report EMP CRI A-292, May 1996.
20 pages, 12 references.


Array remappings are useful to many applications on distributed memory parallel machines. They are integrated into High Performance Fortran, a Fortran~90-based data-parallel language. This paper describes techniques for handling dynamic mappings through simple array copies: array remappings are translated into copies between statically mapped distinct versions of the array. It discusses restrictions of the language required to do so. The remapping graph which captures all remapping and liveness information is presented, as well as additional data-flow optimizations that can be performed on this graph, so as to avoid useless remappings at runtime. Such useless remappings appear for arrays that are not used after a remapping. Array copies the values of which are live are also kept to avoid other flow-dependent useless remappings. Finally the code generation and runtime management issues needed by our scheme are discussed. These techniques are implemented in our prototype HPF compiler.

Paper: .ps.gz (74KB)

This paper is obsoleted by A-302