Probabilistic Procedure Cloning for High-Performance Systems
Resumo
For many scientific and engineering applications efficient compilation of Fortran 90 code is of paramount importance in order to exploit computing power of high performance systems. Fortran 90 subroutine calls can cause serious performance losses if copy-in-copy-out argument passing has to be applied. We present an interprocedural cloning algorithm that prevents redundant argument copying. Our approach is novel with respect to utilizing probabilistic data-flow analysis, which allows us to identify profitable procedure clones, to control code growth by a parameterizable threshold, and to create multiple calls of procedure clones even for single call-sites. On high-performance systems experimental results illustrate the importance and effectivity of this kind of optimization.
Referências
OpenMP Architecture Review Board. OpenMP Application Program Interface, November 1999. OpenMP Forum Home Page: [link].
K. D. Cooper. Interprocedural data flow analysis in a programming environment. PhD thesis, Rice University, Houston, TX, April 1983.
K. D. Cooper, M. W. Hall, and K. Kennedy. A methodology for procedure cloning. Computer Languages, 19(2):1–9, April 1993.
B. Scholz, E. Mehofer. Probabilistic data flow system with two-edge profiling. In Proceedings of the ACM SIGPLAN Workshop on Dynamic and Adaptive Compilation and Optimization (Dynamo’00), Boston, MA, January 2000.
High Performance Fortran Forum. High Performance Fortran language specification version 2.0. Technical report, Rice University, Houston, TX, January 1997. Available via HPFF home page: [link].
Message Passing Interface Forum. MPI-2: Extensions to the Message-Passing Interface. July 1997. MPI Forum Home Page: [link].
M. Hall. Managing Interprocedural Optimization. PhD thesis, Rice University, Houston, TX, April 1991.
G. Ramalingam. Data flow frequency analysis. In Proc. of the ACM SIGPLAN ’96 Conference on Programming Language Design and Implementation (PLDI’96), pages 267–277, Philadelphia, Pennsylvania, May 1996.
T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In Proc. of the ACM Symposium on Principles of Programming Languages (POPL’95), pages 49–61, San Francisco, CA, January 1995.
