Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Interprocedural compilation of Fortran D for MIMD distributed-memory machines
Proceedings of the 1992 ACM/IEEE conference on Supercomputing
The high performance Fortran handbook
The high performance Fortran handbook
A general approach for run-time specialization and its application to C
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic data layout for distributed memory machines
Automatic data layout for distributed memory machines
Optimal compilation of HPF remappings
Journal of Parallel and Distributed Computing - Special issue on compilation techniques for distributed memory systems
Interprocedural array region analyses
International Journal of Parallel Programming - Special issue: selected papers from the eighth international workshop on languages and compilers for parallel computing
A unified approach to global program optimization
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Parallel Synthetic Aperture Radar Processing on Workstation Networks
IPPS '96 Proceedings of the 10th International Parallel Processing Symposium
Interprocedural Array Redistribution Data-Flow Analysis
LCPC '96 Proceedings of the 9th International Workshop on Languages and Compilers for Parallel Computing
Euro-Par '96 Proceedings of the Second International Euro-Par Conference on Parallel Processing - Volume I
Efficient Block Cyclic Data Redistribution
Euro-Par '96 Proceedings of the Second International Euro-Par Conference on Parallel Processing - Volume I
Hi-index | 0.00 |
Array remapping are useful to many applications on distributed memory parallel machines. They are available in High Performance Fortran, a Fortran-based data-parallel language. This paper describes techniques to handle dynamic mappings through simple array copies: array remapping are translated into copies between statically mapped distinct versions of the array. It discusses the language restrictions 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 remapping at run time. Such useless remapping appear for arrays that are not used after a remapping. Live array copies are also kept to avoid other flow-dependent useless remappings. Finally the code generation and runtime required by our scheme are discussed. These techniques are implemented in our prototype HPF compiler.