Abstract
Loop parallelization is an important issue in the acceleration of the execution of scientific programs. To exploit parallelism in loops a system of equations representing the dependencies between the loop iterations and a system of non-equations indicating the loop boundary conditions has to be solved. This is a NP-Complete problem. Our major contribution in this paper has been to apply genetic algorithm to solve system of equation and non-equation resulted from loop dependency analysis techniques to find two dependent loop iterations. We use distance vector to find the rest of dependencies.
References
F. Baiard, D. Guerri, P. Mori, and L. Ricci. Evaluation of a virtual shared memory machine by the compilation of data parallel loops. IEEE, 8:1–3, 1999.
T. Bak. Evolutionary Algorithms in Theory and Practice. Oxford University, 1996.
U. Banerjee. Loop Transformations for Restructuring Compilers The Foundations. Kluwer Academic, 1993.
C.J. Beckmann. Micro Architecture Support for Dynamic Scheduling of Acyclic Task Graphs. University of Illinois, Urbana, pp. 1–3, 1991.
A.J.C. Bik and H.A.G. Wijshoff. Implementation of Fourier-Motzkin Elimination. Leiden University-Netherlands, pp. 1, 10, 1994.
M.F.P. Boyle and P.M.W. Knijnenburg. Efficient parallelisation using combined loop and data transformations. IEEE, 1(9):5–7, 1998.
D.K. Chen and P.Ch. Yew. On effective execution of non-uniform doacross loops. IEEE, 28:1–6, 1995.
Ch.P. Chu and D.L. Carver. Reordering the statements with dependence cycles to improve the performance of parallel loops. IEEE, 322:326–328, 1997.
C. Eisenbeis and J.C. Sogno. A general algorithm for data dependence analysis. In International Conference on Supercomputing—Washington, pp. 1–28, July 19–23, 1992.
M. Gen and R. Cheng. Genetic Algorithms & Engineering Design. John Wiley & Sons, 1997.
D.E. Goldberg. Genetic Algorithms in Search, Optimization, and Machine Learning. Addison-Wesley, 1989.
B. Güyaüler and F. Gümrah. Comparison of genetic algorithm with linear programming for the optimization of an underground gas-storage field. Middle East Technical University, Ankara, Turkey, pp. 1–7, 1995.
K. Högstedt, L. Carter, and J. Ferrante. On the parallel execution time of tiled loops. In Transactions on Parallel and Distributed Systems, vol. 14, no. 3, March 2003, pp. 307, 319–320.
T.C. Huang, P.H. Hso, and T.N. Sheng. Efficient run-time scheduling for parallelizing partially parallel loop. IEEE, 397–403, 1997.
T. Jacobson and G. Stubbendieck. Dependency analysis of for-loop structures for automatic parallelization of c code. Mathematics and Computer Science Department South Dakota School of Mines and Technology, 2002, pp. 1-13.
D.E. Maydan, J.L. Hennessy, and M.S. Lam. Efficient and exact data dependence analysis. In ACM SIGPLAN’91 Conference on Programming Language Design and Implementation, Toronto, Ontario, Canada, pp. 1–10, June 26–28, 1991.
Z. Michalewicz. A survey of constraint handling techniques in evolutionary computation methods. In McDonnell et al., pp. 135–155, 1995.
Z. Michalewicz and N. Attia. Evolutionary computation of constrained problems. In Sebald and Fogel (eds.), pp. 98–108, 1994.
F.J. Miyandashti. Loop uniformization in shared-memory mimd machine. Master Thesis, Iran University of Science and Technology, 1997.
T. Nakanishi, K. Joe, C.D. Polychronopoulos, K. Araki, and A. Fukuda, Estimating parallel execution time of loops with loop-carried dependences. In International Conference on Parallel Processing, IEEE, pp. 61–62, 67, 1996.
W. Pugh. The omega test: A fast and practical integer programming algorithm for dependence analysis. Comm. of the ACM, pp. 1–2, 18, August 1992.
L. Song and K.M. Kavi. A technique for variable dependence driven loop peeling. In the Proceeding of Fifth International Conference on Algorithms and Architectures for Parallel Processing, IEEE, pp. 1–2, 5–6, 2002.
Ch.T. Wu, Ch.T. Yang, and Sh.Sh. Tseng. PPD: A practical parallel loop detector for parallelizing compilers. IEEE, 274–277, 280–281, 1996.
J. Xue, Constructing do loops for non-convex iteration spaces in compiling for parallel machines. IEEE, 364, 368, 1995.
Ch.T. Yang, Sh.Sh. Tseng, M.H. Hsieh, Sh.H. Kao, and M.F. Jiang. Run-time parallelization for partially parallel loops. IEEE, 308–309, 312, 1997.
H. Zima and B. Chapman. Super Compilers for Parallel and Vector Computers. Addison-Wesley, 1991.
A. Zaafrani and M.R. Ito. Expressing cross-loop dependencies through hyperplane data dependence analysis. IEEE, 508–517, 1994.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Parsa, S., Lotfi, S. A New Approach to Parallelization of Serial Nested Loops Using Genetic Algorithms. J Supercomput 36, 83–94 (2006). https://doi.org/10.1007/s11227-006-3557-4
Issue Date:
DOI: https://doi.org/10.1007/s11227-006-3557-4