The Journal of Supercomputing

, Volume 36, Issue 1, pp 83–94 | Cite as

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



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.


parallel processing parallel loops linear equations non-equations genetic algorithms 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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. 2.
    T. Bak. Evolutionary Algorithms in Theory and Practice. Oxford University, 1996.Google Scholar
  3. 3.
    U. Banerjee. Loop Transformations for Restructuring Compilers The Foundations. Kluwer Academic, 1993.Google Scholar
  4. 4.
    C.J. Beckmann. Micro Architecture Support for Dynamic Scheduling of Acyclic Task Graphs. University of Illinois, Urbana, pp. 1–3, 1991.Google Scholar
  5. 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. 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. 7.
    D.K. Chen and P.Ch. Yew. On effective execution of non-uniform doacross loops. IEEE, 28:1–6, 1995.Google Scholar
  8. 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. 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.Google Scholar
  10. 10.
    M. Gen and R. Cheng. Genetic Algorithms & Engineering Design. John Wiley & Sons, 1997.Google Scholar
  11. 11.
    D.E. Goldberg. Genetic Algorithms in Search, Optimization, and Machine Learning. Addison-Wesley, 1989.Google Scholar
  12. 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.Google Scholar
  13. 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.Google Scholar
  14. 14.
    T.C. Huang, P.H. Hso, and T.N. Sheng. Efficient run-time scheduling for parallelizing partially parallel loop. IEEE, 397–403, 1997.Google Scholar
  15. 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.Google Scholar
  16. 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.Google Scholar
  17. 17.
    Z. Michalewicz. A survey of constraint handling techniques in evolutionary computation methods. In McDonnell et al., pp. 135–155, 1995.Google Scholar
  18. 18.
    Z. Michalewicz and N. Attia. Evolutionary computation of constrained problems. In Sebald and Fogel (eds.), pp. 98–108, 1994.Google Scholar
  19. 19.
    F.J. Miyandashti. Loop uniformization in shared-memory mimd machine. Master Thesis, Iran University of Science and Technology, 1997.Google Scholar
  20. 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.Google Scholar
  21. 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.Google Scholar
  22. 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.Google Scholar
  23. 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.Google Scholar
  24. 24.
    J. Xue, Constructing do loops for non-convex iteration spaces in compiling for parallel machines. IEEE, 364, 368, 1995.Google Scholar
  25. 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.Google Scholar
  26. 26.
    H. Zima and B. Chapman. Super Compilers for Parallel and Vector Computers. Addison-Wesley, 1991.Google Scholar
  27. 27.
    A. Zaafrani and M.R. Ito. Expressing cross-loop dependencies through hyperplane data dependence analysis. IEEE, 508–517, 1994.Google Scholar

Copyright information

© Springer Science + Business Media, Inc. 2006

Authors and Affiliations

  1. 1.College of Computer Engineering, Computer Engineering Department-IUST-NarmakIran University of Science and Technology (IUST)TehranIran

Personalised recommendations