ABSTRACT
Writing parallel programs is a challenging but unavoidable proposition to take true advantage of multi-core processors.
In this paper, we extend Multi-core Grammatical Evolution for Parallel Sorting (MCGE-PS) to evolve parallel iterative sorting algorithms while also optimizing their degree of parallelism. We use evolution to optimize the performance of these parallel programs in terms of their execution time, and our results demonstrate a significant optimization of 11.03 in performance when compared with various MCGE-PS variations as well as the GNU GCC compiler optimizations that reduce the execution time through code minimization.
We then analyse the evolutionary (code growth) and non-evolutionary (thread scheduling) factors that cause performance implications. We address them to further optimize the performance and report it as 12.52.
- R. Abbott and J. G. B. Parviz. Guided genetic programming. In H. R. Arabnia and E. B. Kozerenko, editors, Proceedings of the International Conference on Machine Learning; Models, Technologies and Applications, pages 28--34. CSREA Press, 2003.Google Scholar
- A. Agapitos and S. M. Lucas. Evolving efficient recursive sorting algorithms. In IEEE Congress on Evolutionary Computation, pages 2677--2684, 2006.Google Scholar
- A. Agapitos and S. M. Lucas. Evolving modular recursive sorting algorithms. In M. Ebner et.al., editor, EuroGP 2007, volume 4445 of LNCS, pages 301--310. Springer, Heidelberg, 2007. Google ScholarDigital Library
- R. M. A. Azad and C. Ryan. The best things don't always come in small packages: Constant creation in grammatical evolution. In EuroGP 2014, volume 8599 of LNCS, pages 186--197. Springer, Heidelberg, 2014.Google ScholarDigital Library
- G. Chennupati, R. M. A. Azad, and C. Ryan. Multi-core GE: automatic evolution of CPU based multi-core parallel programs. In Proceedings of the Genetic and Evolutionary Computation Conference Companion, pages 1041--1044. ACM, 2014. Google ScholarDigital Library
- G. Chennupati, R. M. A. Azad, and C. Ryan. Automatic evolution of parallel sorting programs on multi-cores. In A. M. Mora and G. Squillero, editors, EvoApplications 2015, volume 9028 of LNCS, pages 706--717. Springer, Heidelberg, 2015.Google Scholar
- S. García and F. Herrera. An extension on "statistical comparisons of classifiers over multiple data sets" for all pairwise comparisons. Journal of Machine Learning Research, 9:2677--2694, 2008.Google Scholar
- W. D. Hillis. Co-evolving parasites improve simulated evolution as an optimization procedure. Physica D: Nonlinear Phenomena, 42(1):228--234, 1990. Google ScholarDigital Library
- K. E. Kinnear Jr. Evolving a sort: Lessons in genetic programming. In IEEE International Conference on Neural Networks, pages 881--888. IEEE, 1993.Google ScholarCross Ref
- K. E. Kinnear Jr. Generality and difficulty in genetic programming: Evolving a sort. In S. Forrest, editor, Proceedings of International Conference on Genetic Algorithms, pages 287--294. Morgan Kaufmann, 1993. Google ScholarDigital Library
- D. E. Knuth. The Art of Computer Programming, Volume 3: (2nd Ed.) Sorting and Searching. Addison Wesley Longman Publishing Co., Inc., Redwood City, CA, USA, 1998. Google ScholarDigital Library
- A. Nisbet. GAPS: A compiler framework for genetic algorithm (ga) optimised parallelisation. In P. Sloot et. al., editor, High-Performance Computing and Networking, volume 1401 of LNCS, pages 987--989. Springer, 1998. Google ScholarDigital Library
- M. O'Neill, M. Nicolau, and A. Agapitos. Experiments in program synthesis with grammatical evolution: A focus on integer sorting. In IEEE Congress on Evolutionary Computation, pages 1504--1511, 2014.Google Scholar
- M. O'Neill and C. Ryan. Grammatical Evolution: Evolutionary Automatic Programming in an Arbitrary Language. Kluwer Academic Publishers, Norwell, MA, USA, 2003. Google ScholarDigital Library
- OpenMP Architecture Review Board. OpenMP application program interface version 3.0. http://www.openmp.org/mp-documents/spec30.pdf, May 2008.Google Scholar
- U.-M. O'Reilly and F. Oppacher. An experimental perspective on genetic programming. In R. Manner and B. Manderick, editors, Parallel Problem Solving from Nature 2, pages 331--340. Elsevier Science, 1992.Google Scholar
- U.-M. O'Reilly and F. Oppacher. A comparative analysis of genetic programming. In P. J. Angeline et. al, editor, Advances in Genetic Programming 2, chapter 2, pages 23--44. MIT Press, 1996. Google ScholarDigital Library
- C. Ryan. Automatic Re-engineering of Software Using Genetic Programming, volume 2 of Genetic Programming. Springer, 1999.Google Scholar
- C. Ryan, J. J. Collins, and M. O'Neill. Grammatical evolution: Evolving programs for an arbitrary language. In W. Banzhaf et. al., editor, EuroGP 1998, volume 1391 of LNCS, pages 83--95. Springer, Heidelberg, 1998. Google ScholarDigital Library
- C. Ryan and L. Ivan. Automatic parallelization of arbitrary programs. In R. Poli et. al., editor, EuroGP 1999, volume 1598 of LNCS, pages 244--254. Springer, Heidelberg, 1999. Google ScholarDigital Library
- L. Spector, J. Klein, and M. Keijzer. The push3 execution stack and the evolution of control. In Proceedings of the Genetic and Evolutionary Computation Conference, pages 1689--1696, 2005. Google ScholarDigital Library
- A. Trenaman. Concurrent genetic programming, tartarus and dancing agents. In R. Poli et. al., editor, EuroGP 1999, volume 1598 of LNCS, pages 270--282. Springer, Heidelberg, 1999. Google ScholarDigital Library
- A. Vargha and H. D. Delaney. A critique and improvement of the "cl" common language effect size statistics of mcgraw and wong. Journal of Educational and Behavioral Statistics, 25(2):101--132, 2000.Google Scholar
- P. A. Whigham. Grammatical Bias for Evolutionary Learning. PhD thesis, University of New South Wales, 1996. Google ScholarDigital Library
- K. P. Williams. Evolutionary algorithms for automatic parallelization. PhD thesis, University of Reading, 1998.Google Scholar
Index Terms
- Synthesis of Parallel Iterative Sorts with Multi-Core Grammatical Evolution
Recommendations
Performance Optimization of Multi-Core Grammatical Evolution Generated Parallel Recursive Programs
GECCO '15: Proceedings of the 2015 Annual Conference on Genetic and Evolutionary ComputationAlthough Evolutionary Computation (EC) has been used with considerable success to evolve computer programs, the majority of this work has targeted the production of serial code. Recent work with Grammatical Evolution (GE) produced Multi-core Grammatical ...
Multi-core GE: automatic evolution of CPU based multi-core parallel programs
GECCO Comp '14: Proceedings of the Companion Publication of the 2014 Annual Conference on Genetic and Evolutionary ComputationWe describe the utilization of on-chip multiple CPU architectures to automatically evolve parallel computer programs. These programs have the capability of exploiting the computational efficiency of the modern multi-core machines.
This is significantly ...
On the Automatic Generation of Efficient Parallel Iterative Sorting Algorithms
GECCO Companion '15: Proceedings of the Companion Publication of the 2015 Annual Conference on Genetic and Evolutionary ComputationIncreasing availability of multiple processing elements on the recent desktop and personal computers poses unavoidable challenges in realizing their processing power. The challenges include programming these high processing elements. Parallel ...
Comments