Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
The impact of interprocedural analysis and optimization in the Rn programming environment
ACM Transactions on Programming Languages and Systems (TOPLAS)
The program summary graph and flow-sensitive interprocedual data flow analysis
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Compiling Fortran D for MIMD distributed-memory machines
Communications of the ACM
Managing interprocedural optimization
Managing interprocedural optimization
Interprocedural compilation of Fortran D for MIMD distributed-memory machines
Proceedings of the 1992 ACM/IEEE conference on Supercomputing
Slicing analysis and indirect accesses to distributed arrays
Slicing analysis and indirect accesses to distributed arrays
The high performance Fortran handbook
The high performance Fortran handbook
An elimination algorithm for bidirectional data flow problems using edge placement
ACM Transactions on Programming Languages and Systems (TOPLAS)
Runtime compilation techniques for data partitioning and communication schedule reuse
Proceedings of the 1993 ACM/IEEE conference on Supercomputing
Compiler and runtime support for structured and block structured applications
Proceedings of the 1993 ACM/IEEE conference on Supercomputing
Efficient computation of interprocedural definition-use chains
ACM Transactions on Programming Languages and Systems (TOPLAS)
An integrated runtime and compile-time approach for parallelizing structured and block structured applications
A manual for the multiblock PARTI runtime primitives
A manual for the multiblock PARTI runtime primitives
GIVE-N-TAKE—a balanced code placement framework
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Compiling Fortran 90D/HPF for distributed memory MIMD computers
Journal of Parallel and Distributed Computing - Special issue on data parallel algorithms and programming
Interprocedural communication optimizations for distributed memory compilation
Interprocedural communication optimizations for distributed memory compilation
Parallelizing molecular dynamics programs for distributed memory machines: an application of the CHAOS runtime support library
Interprocedural partial redundancy elimination and its application to distributed memory compilation
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Global optimization by suppression of partial redundancies
Communications of the ACM
A precise inter-procedural data flow algorithm
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Run-time and compile-time support for adaptive irregular problems
Proceedings of the 1994 ACM/IEEE conference on Supercomputing
Distributed Memory Compiler Design For Sparse Problems
IEEE Transactions on Computers
Compiling Global Name-Space Parallel Loops for Distributed Execution
IEEE Transactions on Parallel and Distributed Systems
Data parallel programming in an adaptive environment
IPPS '95 Proceedings of the 9th International Symposium on Parallel Processing
Exploiting spatial regularity in irregular iterative applications
IPPS '95 Proceedings of the 9th International Symposium on Parallel Processing
FIAT: A Framework for Interprocedural Analysis and Transfomation
Proceedings of the 6th International Workshop on Languages and Compilers for Parallel Computing
A Unified Data-Flow Framework for Optimizing Communication
LCPC '94 Proceedings of the 7th International Workshop on Languages and Compilers for Parallel Computing
Annotations for a Sparse Compiler
LCPC '95 Proceedings of the 8th International Workshop on Languages and Compilers for Parallel Computing
Automatic Parallelization of the Conjugate Gradient Algorithm
LCPC '95 Proceedings of the 8th International Workshop on Languages and Compilers for Parallel Computing
Compiler and software distributed shared memory support for irregular applications
PPOPP '97 Proceedings of the sixth ACM SIGPLAN symposium on Principles and practice of parallel programming
High-level management of communication schedules in HPF-like languages
ICS '98 Proceedings of the 12th international conference on Supercomputing
A General Interprocedural Framework for Placement of Split-Phase Large Latency Operations
IEEE Transactions on Parallel and Distributed Systems
Comparative study of page-based and segment-based software DSM through compiler optimization
Proceedings of the 14th international conference on Supercomputing
Compiler-directed shared-memory communication for iterative parallel applications
Supercomputing '96 Proceedings of the 1996 ACM/IEEE conference on Supercomputing
Landing CG on EARTH: a case study of fine-grained multithreading on an evolutionary path
Proceedings of the 2000 ACM/IEEE conference on Supercomputing
Contention elimination by replication of sequential sections in distributed shared memory programs
PPoPP '01 Proceedings of the eighth ACM SIGPLAN symposium on Principles and practices of parallel programming
Data parallel language and compiler support for data intensive applications
Parallel Computing - Parallel data-intensive algorithms and applications
Compiler and Runtime Support for Irregular Reductions on a Multithreaded Architecture
IPDPS '02 Proceedings of the 16th International Parallel and Distributed Processing Symposium
Aggressive communication optimizations for clusters of workstations
Cluster computing
Optimizing irregular shared-memory applications for clusters
Proceedings of the 22nd annual international conference on Supercomputing
Hi-index | 0.00 |
Data parallel languages like High Performance Fortran (HPF) are emerging as the architecture independent mode of programming distributed memory parallel machines. In this paper, we present the interprocedural optimizations required for compiling applications having irregular data access patterns, when coded in such data parallel languages. We have developed an Interprocedural Partial Redundancy Elimination (IPRE) algorithm for optimized placement of runtime preprocessing routine and collective communication routines inserted for managing communication in such codes. We also present two new interprocedural optimizations, placement of scatter routines and use of coalescing and incremental routines. We then describe how program slicing can be used for further applying IPRE in more complex scenarios. We have done a preliminary implementation of the schemes presented here using the Fortran D compilation system as the necessary infrastructure. We present experimental results from two codes compiled using our system to demonstrate the efficacy of the presented schemes.