ABSTRACT
Genetic Programming (GP) is a computationally intensive technique but its nature is embarrassingly parallel. Graphic Processing Units (GPUs) are many-core architectures which have been widely employed to speed up the evaluation of GP. In recent years, many works have shown the high performance and efficiency of GPUs on evaluating both the individuals and the fitness cases in parallel. These approaches are known as population parallel and data parallel. This paper presents a parallel GP interpreter which extends these approaches and adds a new parallelization level based on the concurrent evaluation of the individual's subtrees. A GP individual defined by a tree structure with nodes and branches comprises different depth levels in which there are independent subtrees which can be evaluated concurrently. Threads can cooperate to evaluate different subtrees and share the results via GPU's shared memory. The experimental results show the better performance of the proposal in terms of the GP operations per second (GPops/s) that the GP interpreter is capable of processing, achieving up to 21 billion GPops/s using a NVIDIA 480 GPU. However, some issues raised due to limitations of currently available hardware are to be overcomed by the dynamic parallelization capabilities of the next generation of GPUs.
- D. Andre and J. R. Koza. A parallel implementation of genetic programming that achieves super-linear performance. Information Sciences, 106(3--4):201--218, 1998. Google ScholarDigital Library
- D. A. Augusto and H. J. Barbosa. Accelerated parallel genetic programming tree evaluation with OpenCL. Journal of Parallel and Distributed Computing, 73(1):86--100, 2013. Google ScholarDigital Library
- W. Banzhaf and S. Harding. Accelerating evolutionary computation with graphics processing units. In Proceedings of the 14th Annual Conference Companion on Genetic and Evolutionary Computation, GECCO '09, pages 3237--3286, 2009. Google ScholarDigital Library
- W. Banzhaf, S. Harding, W. B. Langdon, and G. Wilson. Accelerating genetic programming through graphics processing units. In Genetic Programming Theory and Practice VI, Genetic and Evolutionary Computation, pages 1--19. Springer US, 2009.Google Scholar
- A. Cano, A. Zafra, and S. Ventura. Speeding up the evaluation phase of GP classification algorithms on GPUs. Soft Computing, 16(2):187--202, 2012. Google ScholarDigital Library
- A. Cano, A. Zafra, and S. Ventura. Parallel evaluation of pittsburgh rule-based classifiers on GPUs. Neurocomputing, 126:45--57, 2014. Google ScholarDigital Library
- D. M. Chitty. A data parallel approach to genetic programming using programmable graphics hardware. In Proceedings of the 12th Annual Conference Companion on Genetic and Evolutionary Computation, GECCO '07, pages 1566--1573, 2007. Google ScholarDigital Library
- D. M. Chitty. Fast parallel genetic programming: multi-core cpu versus many-core GPU. Soft Computing, 16(10):1795--1814, 2012.Google ScholarDigital Library
- P. G. Espejo, S. Ventura, and F. Herrera. A Survey on the Application of Genetic Programming to Classification. IEEE Transactions on Systems, Man, and Cybernetics, Part C Applications and Reviews, 40:121--144, 2010. Google ScholarDigital Library
- M. A. Franco, N. Krasnogor, and J. Bacardit. Speeding up the evaluation of evolutionary learning systems using GPGPUs. In Proceedings of the 15th Annual Conference Companion on Genetic and Evolutionary Computation, GECCO '10, pages 103--110, 2010. Google ScholarDigital Library
- S. Harding and W. Banzhaf. Fast genetic programming on GPUs. In Proceedings of the 10th European Conference on Genetic Programming, pages 90--101, 2007. Google ScholarDigital Library
- S. L. Harding and W. Banzhaf. Distributed genetic programming on GPUs using CUDA. In Workshop on Parallel Architectures and Bioinspired Algorithms, pages 1--10, 2009.Google Scholar
- J. R. Koza. Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, 1992. Google ScholarDigital Library
- W. B. Langdon. Large scale bioinformatics data mining with parallel genetic programming on graphics processing units. In Parallel and Distributed Computational Intelligence, pages 113--141. 2010.Google ScholarCross Ref
- W. B. Langdon. A many threaded CUDA interpreter for genetic programming. In Proceedings of the 13th European Conference on Genetic Programming, volume 6021 of Lecture Notes in Computer Science, pages 146--158, 2010. Google ScholarDigital Library
- W. B. Langdon. Graphics processing units and genetic programming: an overview. Soft Computing, 15(8):1657--1669, 2011. Google ScholarDigital Library
- W. B. Langdon and W. Banzhaf. A SIMD interpreter for genetic programming on GPU graphics cards. In Proceedings of the 11th European Conference on Genetic Programming, volume 4971 of Lecture Notes in Computer Science, pages 73--85, 2008. Google ScholarDigital Library
- W. B. Langdon and S. M. Gustafson. Genetic programming and evolvable machines: Ten years of reviews. Genetic Programming and Evolvable Machines, 11(3--4):321--338, 2010. Google ScholarDigital Library
- O. Maitre, N. Lachiche, and P. Collet. Fast evaluation of GP trees on GPGPU by optimizing hardware scheduling. In Proceedings of the 13th European Conference on Genetic Programming, volume 6021 of Lecture Notes in Computer Science, pages 301--312, 2010. Google ScholarDigital Library
- F. Neumann. Computational complexity analysis of multi-objective genetic programming. In Proceedings of the 17th Annual Conference Companion on Genetic and Evolutionary Computation, GECCO '12, pages 799--806, 2012. Google ScholarDigital Library
- D. J. Newman and A. Asuncion. UCI Machine Learning Repository, University of California, Irvine, School of Information and Computer Sciences, 2007.Google Scholar
- NVIDIA Corporation. NVIDIA CUDA Programming and Best Practices Guide, 2013.Google Scholar
- D. Robilliard, V. Marion, and C. Fonlupt. High performance genetic programming on GPU. In Proceedings of the Workshop on Bio-inspired Algorithms for Distributed Systems, BADS '09, pages 85--94, 2009. Google ScholarDigital Library
- D. Robilliard, V. Marion-Poty, and C. Fonlupt. Population parallel GP on the G80 GPU. In Proceedings of the 11th European Conference on Genetic Programming, volume 4971 of Lecture Notes in Computer Science, pages 98--109, 2008. Google ScholarDigital Library
- D. Robilliard, V. Marion-Poty, and C. Fonlupt. Genetic programming on graphics processing units. Genetic Programming and Evolvable Machines, 10(4):447--471, 2009. Google ScholarDigital Library
- G. Wilson and W. Banzhaf. Deployment of CPU and GPU-based genetic programming on heterogeneous devices. In Proceedings of the 14th Annual Conference Companion on Genetic and Evolutionary Computation, GECCO '09, pages 2531--2538, 2009. Google ScholarDigital Library
Index Terms
- GPU-parallel subtree interpreter for genetic programming
Recommendations
Fast parallel genetic programming: multi-core CPU versus many-core GPU
Genetic Programming (GP) is a computationally intensive technique which is also highly parallel in nature. In recent years, significant performance improvements have been achieved over a standard GP CPU-based approach by harnessing the parallel ...
Faster GPU-based genetic programming using a two-dimensional stack
Genetic programming (GP) is a computationally intensive technique which also has a high degree of natural parallelism. Parallel computing architectures have become commonplace especially with regards to Graphics Processing Units (GPU). Hence, versions ...
High performance genetic programming on GPU
BADS '09: Proceedings of the 2009 workshop on Bio-inspired algorithms for distributed systemsThe availability of low cost powerful parallel graphics cards has stimulated the port of Genetic Programming (GP) on Graphics Processing Units (GPUs). Our work focuses on the possibilities offered by Nvidia G80 GPUs when programmed in the CUDA language. ...
Comments