The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.05 - May (2009 vol.20)
pp: 623-640
Konstantinos Kyriakopoulos , The University of Texas at San Antonio, San Antonio
ABSTRACT
;High-end parallel and multicore processors rely on compilers to perform the necessary optimizations and exploit concurrency in order to achieve higher performance. However, the source code for high-performance computers is extremely complex to analyze and optimize. In particular, program analysis techniques often do not take into account complex expressions during the data dependence analysis phase. Most data dependence tests are only able to analyze linear expressions, even though nonlinear expressions occur very often in practice. Therefore, considerable amounts of potential parallelism remain unexploited. In this paper, we propose new data dependence analysis techniques to handle such complex instances of the dependence problem and increase program parallelization. Our method is based on a set of polynomial-time techniques that can prove or disprove dependences in source codes with nonlinear and symbolic expressions, complex loop bounds, arrays with coupled subscripts, and if-statement constraints. In addition, our algorithm can produce accurate and complete direction vector information, enabling the compiler to apply further transformations. To validate our method, we performed an experimental evaluation and comparison against the I-Test, the Omega test, and the Range test in the Perfect and SPEC benchmarks. The experimental results indicate that our dependence analysis tool is accurate, efficient, and more effective in program parallelization than the other dependence tests. The improved parallelization results into higher speedups and better program execution performance in several benchmarks.
INDEX TERMS
Data dependence, program analysis, automatic parallelization, compiler optimization.
CITATION
Konstantinos Kyriakopoulos, "Nonlinear Symbolic Analysis for Advanced Program Parallelization", IEEE Transactions on Parallel & Distributed Systems, vol.20, no. 5, pp. 623-640, May 2009, doi:10.1109/TPDS.2008.131
REFERENCES
[1] R. Allen and K. Kennedy, Optimizing Compilers for Modern Architectures. Morgan Kaufmann, 2002.
[2] D.F. Bacon, S.L. Graham, and O.J. Sharp, “Compiler Transformations for High-Performance Computing,” ACM Computing Surveys, vol. 26, no. 4, Dec. 1994.
[3] U. Banerjee, Dependence Analysis. Kluwer Academic Publishers, 1997.
[4] U. Banerjee, Loop Parallelization. Kluwer Academic Publishers, 1994.
[5] J. Birch, R.A. van Engelen, K.A. Gallivan, and Y. Shou, “An Empirical Evaluation of Chains of Recurrences for Array Dependence Testing,” Proc. 15th Int'l Conf. Parallel Architectures and Compilation Techniques (PACT '06), Sept. 2006.
[6] W. Blume and R. Eigenmann, “Nonlinear and Symbolic Data Dependence Testing,” IEEE Trans. Parallel and Distributed Systems, vol. 9, no. 12, Dec. 1998.
[7] W. Blume, R. Doallo, R. Eigenmann, J. Grout, J. Hoeflinger, T. Lawrence, J. Lee, D.A. Padua, Y. Paek, W.M. Pottenger, L. Rauchwerger, and P. Tu, “Parallel Programming with Polaris,” Computer, vol. 29, no. 12, Dec. 1996.
[8] M. Burke and R. Cytron, “Interprocedural Dependence Analysis and Parallelization,” Proc. SIGPLAN Symp. Compiler Construction (SCC '86), June 1986.
[9] R. Eigenmann, J. Hoeflinger, and D. Padua, “On the Automatic Parallelization of the Perfect Benchmarks,” IEEE Trans. Parallel and Distributed Systems, vol. 9, no. 1, Jan. 1998.
[10] R.A. van Engelen, J. Birch, Y. Shou, B. Walsh, and K.A. Gallivan, “A Unified Framework for Nonlinear Dependence Testing and Symbolic Analysis,” Proc. ACM Int'l Conf. Supercomputing, June 2004.
[11] T. Fahringer and B. Scholz, “A Unified Symbolic Evaluation Framework for Parallelizing Compilers,” IEEE Trans. Parallel and Distributed Systems, vol. 11, no. 11, Nov. 2000.
[12] G. Golf, K. Kennedy, and C. Tseng, “Practical Dependence Testing,” Proc. SIGPLAN Conf. Programming Language Design and Implementation (PLDI '91), June 1991.
[13] M.R. Haghighat, Symbolic Analysis for Parallelizing Compilers. Kluwer Academic Publishers, 1995.
[14] M.W. Hall, J. Anderson, S.P. Amarasinghe, B.R. Murphy, S. Liao, E. Bougnion, and M. Lam, “Maximizing Multiprocessor Performance with the SUIF Compiler,” Computer, vol. 29, no. 12, Dec. 1996.
[15] J.L. Henning, “SPEC CPU2000: Measuring CPU Performance in the New Millennium,” Computer, July 2000.
[16] J. Hoeflinger and Y. Paek, “A Comparative Analysis of Dependence Testing Mechanisms,” Proc. 13th Int'l Workshop Languages and Compilers for Parallel Computing (LCPC '00), Aug. 2000.
[17] X. Kong, D. Klappholz, and K. Psarris, “The I-Test: An Improved Dependence Test for Automatic Parallelization and Vectorization,” IEEE Trans. Parallel and Distributed Systems, vol. 2, no. 3, July 1991.
[18] Z. Li, P. Yew, and C. Zhu, “An Efficient Data Dependence Analysis for Parallelizing Compilers,” IEEE Trans. Parallel and Distributed Systems, vol. 1, no. 1, Jan. 1990.
[19] D. Maydan, J. Hennesy, and M. Lam, “Efficient and Exact Data Dependence Analysis for Parallelizing Compilers,” Proc. SIGPLAN Conf. Programming Language Design and Implementation (PLDI '91), June 1991.
[20] Y. Paek, J. Hoeflinger, and D. Padua, “Efficient and Precise Array Access Analysis,” ACM Trans. Programming Languages and Systems, vol. 24, no. 1, Jan. 2002.
[21] K. Psarris, “The Banerjee-Wolfe and GCD Tests on Exact Data Dependence Information,” J. Parallel and Distributed Computing, vol. 32, no. 2, Feb. 1996.
[22] K. Psarris, X. Kong, and D. Klappholz, “The Direction Vector I Test,” IEEE Trans. Parallel and Distributed Systems, vol. 4, no. 11, Nov. 1993.
[23] K. Psarris and K. Kyriakopoulos, “An Experimental Evaluation of Data Dependence Analysis Techniques,” IEEE Trans. Parallel and Distributed Systems, vol. 15, no. 3, Mar. 2004.
[24] W. Pugh, “A Practical Algorithm for Exact Array Dependence Analysis,” Comm. ACM, vol. 35, no. 8, Aug. 1992.
[25] W. Pugh and D. Wonnacott, “Eliminating False Data Dependences Using the Omega Test,” Proc. SIGPLAN Conf. Programming Language Design and Implementation (PLDI '92), June 1992.
[26] W. Pugh and D. Wonnacott, “Constraint-Based Array Dependence Analysis,” ACM Trans. Programming Languages and Systems, vol. 20, no. 3, May 1998.
[27] S. Rus, D. Zhang, and L. Rauchwerger, “The Value Evolution Graph and Its Use in Memory Reference Analysis,” Proc. 13th Int'l Conf. Parallel Architecture and Compilation Techniques (PACT '04), Oct. 2004.
[28] P. Tu and D. Padua, “Gated SSA-Based Demand-Driven Symbolic Analysis for Parallelizing Compilers,” Proc. Ninth ACM Int'l Conf. Supercomputing (ICS '95), July 1995.
[29] M.E. Wolfe, High Performance Compilers for Parallel Computing. Pitman, Addison-Wesley.
[30] P. Wu, A. Cohen, J. Hoeflinger, and D. Padua, “Monotonic Evolution: An Alternative to Induction Variable Substitution for Dependence Analysis,” Proc. 15th ACM Int'l Conf. Supercomputing (ICS '01), June 2001.
24 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool