Skip to main content

Advertisement

Log in

A New Approach to Parallelization of Serial Nested Loops Using Genetic Algorithms

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. 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.

    Google Scholar 

  2. T. Bak. Evolutionary Algorithms in Theory and Practice. Oxford University, 1996.

  3. U. Banerjee. Loop Transformations for Restructuring Compilers The Foundations. Kluwer Academic, 1993.

  4. C.J. Beckmann. Micro Architecture Support for Dynamic Scheduling of Acyclic Task Graphs. University of Illinois, Urbana, pp. 1–3, 1991.

  5. A.J.C. Bik and H.A.G. Wijshoff. Implementation of Fourier-Motzkin Elimination. Leiden University-Netherlands, pp. 1, 10, 1994.

    Google Scholar 

  6. M.F.P. Boyle and P.M.W. Knijnenburg. Efficient parallelisation using combined loop and data transformations. IEEE, 1(9):5–7, 1998.

    Google Scholar 

  7. D.K. Chen and P.Ch. Yew. On effective execution of non-uniform doacross loops. IEEE, 28:1–6, 1995.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. 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.

  10. M. Gen and R. Cheng. Genetic Algorithms & Engineering Design. John Wiley & Sons, 1997.

  11. D.E. Goldberg. Genetic Algorithms in Search, Optimization, and Machine Learning. Addison-Wesley, 1989.

  12. 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.

  13. 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.

  14. T.C. Huang, P.H. Hso, and T.N. Sheng. Efficient run-time scheduling for parallelizing partially parallel loop. IEEE, 397–403, 1997.

  15. 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.

  16. 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.

  17. Z. Michalewicz. A survey of constraint handling techniques in evolutionary computation methods. In McDonnell et al., pp. 135–155, 1995.

  18. Z. Michalewicz and N. Attia. Evolutionary computation of constrained problems. In Sebald and Fogel (eds.), pp. 98–108, 1994.

  19. F.J. Miyandashti. Loop uniformization in shared-memory mimd machine. Master Thesis, Iran University of Science and Technology, 1997.

  20. 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.

  21. 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.

  22. 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.

  23. 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.

  24. J. Xue, Constructing do loops for non-convex iteration spaces in compiling for parallel machines. IEEE, 364, 368, 1995.

    Google Scholar 

  25. 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.

  26. H. Zima and B. Chapman. Super Compilers for Parallel and Vector Computers. Addison-Wesley, 1991.

  27. A. Zaafrani and M.R. Ito. Expressing cross-loop dependencies through hyperplane data dependence analysis. IEEE, 508–517, 1994.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Saeed Parsa.

Rights and permissions

Reprints 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

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-006-3557-4

Keywords

Navigation