Compiling Dynamic Mappings with Array Copies
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