DocumentCode :
822119
Title :
Nonlinear Symbolic Analysis for Advanced Program Parallelization
Author :
Kyriakopoulos, Konstantinos ; Psarris, Kleanthis
Author_Institution :
Dept. of Comput. Sci., Univ. of Texas at San Antonio, San Antonio, TX
Volume :
20
Issue :
5
fYear :
2009
fDate :
5/1/2009 12:00:00 AM
Firstpage :
623
Lastpage :
640
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.
Keywords :
computational complexity; optimising compilers; parallel programming; parallelising compilers; program diagnostics; symbol manipulation; advanced program parallelization; complex loop bound; data dependence analysis phase; multicore processor; nonlinear symbolic analysis; optimizing compiler; polynomial-time technique; program analysis technique; Compilers; Data dependence; Optimization; automatic parallelization; compiler optimization.; program analysis;
fLanguage :
English
Journal_Title :
Parallel and Distributed Systems, IEEE Transactions on
Publisher :
ieee
ISSN :
1045-9219
Type :
jour
DOI :
10.1109/TPDS.2008.131
Filename :
4585370
Link To Document :
بازگشت