Skip to main content

Automatic Evolution of Parallel Recursive Programs

  • Conference paper
  • First Online:
Genetic Programming (EuroGP 2015)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 9025))

Included in the following conference series:

Abstract

Writing recursive programs for fine-grained task-level execution on parallel architectures, such as the current generation of multi-core machines, often require the application of skilled parallelization knowledge to fully realize the potential of the hardware. This paper automates the process by using Grammatical Evolution (GE) to exploit the multi-cores through the evolution of natively parallel programs. We present Multi-core Grammatical Evolution (MCGE-II), which employs GE and OpenMP specific pragmatic information to automatically evolve task-level parallel recursive programs. MCGE-II is evaluated on six recursive C programs, and we show that it solves each of them using parallel code. We further show that MCGE-II significantly decreases the parallel computational effort as the number of cores increase, when tested on an Intel processor.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    For example, the Intel Polaris has 80 cores, while the picoChip PC200 has 200+.

  2. 2.

    http://www.gotw.ca/publications/concurrency-ddj.htm.

References

  1. Agapitos, A., Lucas, S.M.: Evolving efficient recursive sorting algorithms. In: IEEE Congress on Evolutionary Computation, pp. 2677–2684. IEEE (2006)

    Google Scholar 

  2. Agapitos, A., Lucas, S.: Evolving modular recursive sorting algorithms. In: Ebner, M., O’Neill, M., Ekárt, A., Vanneschi, L., Esparcia-Alcázar, A.I. (eds.) EuroGP 2007. LNCS, vol. 4445, pp. 301–310. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  3. Amarasinghe, S.: (How) can programmers conquer the multicore menace?. In: Proceedings of the International Conference on Parallel Architectures and Compilation Techniques, pp. 133–133. ACM (2008)

    Google Scholar 

  4. Barker, C.: Gartner: Multicore chips leave software trailing (Jan 2009)

    Google Scholar 

  5. Bondhugula, U., Hartono, A., Ramanujam, J., Sadayappan, P.: A practical automatic polyhedral parallelizer and locality optimizer. In: ACM SIGPLAN Conference on Programming Languages Design and Implementation. vol. 43, pp. 101–113. ACM (2008)

    Google Scholar 

  6. Brave, S.: Evolving recursive programs for tree search. In: Angeline, P.J., Kinnear Jr., K.E. (eds.) Advances in Genetic Programming, vol. 2, pp. 203–220. MIT Press, Cambridge (1996)

    Google Scholar 

  7. Chennupati, G., Azad, R.M.A., Ryan, C.: Multi-core GE: automatic evolution of CPU based multi-core parallel programs. In: Proceedings of the Genetic and Evolutionary Computation Conference Companion, pp. 1041–1044. ACM (2014)

    Google Scholar 

  8. Chennupati, G., Fitzgerald, J., Ryan, C.: On the efficiency of multi-core grammatical evolution (MCGE) evolving multi-core parallel programs. In: Proceedings of the Sixth World Congress on Nature and Biologically Inspired Computing (NaBIC), pp. 238–243. IEEE (2014)

    Google Scholar 

  9. Koza, J.R.: Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge (1992)

    MATH  Google Scholar 

  10. Moraglio, A., Otero, F.E.B., Johnson, C.G., Thompson, S., Freitas, A.A.: Evolving recursive programs using non-recursive scaffolding. In: IEEE Congress on Evolutionary Computation, pp. 1–8. IEEE (2012)

    Google Scholar 

  11. Nisbet, A.: A compiler framework for genetic algorithm (GA) optimised parallelisation. In: Bubak, M., Hertzberger, B., Sloot, P.M.A. (eds.) HPCN-Europe 1998. LNCS, vol. 1401, pp. 987–989. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  12. OpenMP Architecture Review Board: OpenMP application program interface version 3.0., May 2008. http://www.openmp.org/mp-documents/spec30.pdf

  13. Ryan, C.: Automatic Re-engineering of Software Using Genetic Programming, Genetic Programming, vol. 2. Springer, New York (1999)

    Google Scholar 

  14. Ryan, C., Azad, R.M.A.: Sensible initialisation in grammatical evolution. In: Barry, A.M. (ed.) Proceedings of the Bird of a Feather Workshops, Genetic and Evolutionary Computation Conference, pp. 142–145. AAAI (2003)

    Google Scholar 

  15. Ryan, C., Collins, J.J., Neill, M.O.: Grammatical evolution: evolving programs for an arbitrary language. In: Banzhaf, W., Poli, R., Schoenauer, M., Fogarty, T.C. (eds.) EuroGP 1998. LNCS, vol. 1391, pp. 83–95. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  16. Ryan, C., Ivan, L.: Automatic parallelization of arbitrary programs. In: Langdon, W.B., Fogarty, T.C., Nordin, P., Poli, R. (eds.) EuroGP 1999. LNCS, vol. 1598, pp. 244–254. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  17. Spector, L., Klein, J., Keijzer, M.: The push3 execution stack and the evolution of control. In: Proceedings of the Genetic and Evolutionary Computation Conference, pp. 1689–1696. ACM, New York (2005)

    Google Scholar 

  18. Trenaman, A.: Concurrent Genetic Programming, Tartarus and Dancing Agents. In: Langdon, W.B., Fogarty, T.C., Nordin, P., Poli, R. (eds.) EuroGP 1999. LNCS, vol. 1598, pp. 270–282. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  19. Whigham, P.A., McKay, R.I.: Genetic approaches to learning recursive relations. In: Yao, X. (ed.) Progess in Evolutionary Computation. LNAI, vol. 956, pp. 17–27. Springer, Heidelberg (1995)

    Chapter  Google Scholar 

  20. Williams, K.P.: Evolutionary algorithms for automatic parallelization. Ph.D. thesis, University of Reading (1998)

    Google Scholar 

  21. Wong, M.L., Mun, T.: Evolving recursive programs by using adaptive grammar based genetic programming. Genet. Program. Evolvable Mach. 6, 421–455 (2005)

    Article  Google Scholar 

  22. Yu, T., Clark, C.: Recursion, lambda-abstractions and genetic programming. Cognitive Science Research Papers-University Of Birmingham CSRP, pp. 26–30 (1998)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gopinath Chennupati .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Chennupati, G., Azad, R.M.A., Ryan, C. (2015). Automatic Evolution of Parallel Recursive Programs. In: Machado, P., et al. Genetic Programming. EuroGP 2015. Lecture Notes in Computer Science(), vol 9025. Springer, Cham. https://doi.org/10.1007/978-3-319-16501-1_14

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-16501-1_14

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-16500-4

  • Online ISBN: 978-3-319-16501-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics