Performance Optimization in Genetic Programming Interpreter Code
Abstract
Genetic Programming is an evolutionary algorithm technique that often presents many instructions and steps that can be performed concurrently. Thus, parallel and high performance programming techniques can be employed to optimize the computational performance of the developed algorithm. This article demonstrates the performance improvement obtained for a code that interprets Genetic Programming algorithms, through the use of programming that adheres to OpenMP and OpenACC standards. As a result, it was possible to observe that the GPU executions showed a significant performance improvement when used with inputs considered large for the problem. It should also be noted that the version developed in OpenACC allows portability of the code, allowing efficient execution of the multithreaded form in CPU, as well as in GPU, representing an option with effective portability.
References
Chitty, D. M. (2012). Fast parallel genetic programming: multi-core CPU versus many-core GPU. Soft Computing, 16(10):1795–1814.
de Melo, V.V., Fazenda, A. L.,Sotto, L. F. D. P. ,and Iacca,G.(2020). A mimd interpreter for genetic programming. In Castillo, P. A., Jimenez Laredo, J. L., and Fernandez de Vega, F., editors, Applications of Evolutionary Computation, pages 645–658. Springer International Publishing, Cham.
Koza, J. R. (1994). Genetic programming as a means for programming computers by natural selection. Statistics and Computing, 4(2):87–112.
