Towards highly optimized cartesian genetic programming: from sequential via SIMD and thread to massive parallel implementation

Most implementations of Cartesian genetic programming (CGP) which can be found in the literature are sequential. However, solving complex design problems by means of genetic programming requires parallel implementations of search methods and fitness functions. This paper deals with the design of highly optimized implementations of CGP and their detailed evaluation in the task of evolutionary circuit design. Several sequential implementations of CGP have been analyzed and the effect of various additional optimizations has been investigated. Furthermore, the parallelism at the instruction, data, thread and process level has been applied in order to take advantage of modern processor architectures and computer clusters. Combinational adders and multipliers have been chosen to give a performance comparison with state of the art methods.

[1]  Lukás Sekanina,et al.  This is an author-created accepted version of the paper: Vasicek Z., Sekanina L.: Formal Verification of Candidate Solutions for Post- Synthesis Evolutionary Optimization in Evolvable Hardware. Genetic Programming and Evolvable Machines, Spec. Issue on Evolvable Hardware , 2011 .

[2]  John R. Koza,et al.  Genetic Programming IV: Routine Human-Competitive Machine Intelligence , 2003 .

[3]  Zdenek Vasícek,et al.  Efficient Phenotype Evaluation in Cartesian Genetic Programming , 2012, EuroGP.

[4]  E. Stomeo,et al.  Generalized Disjunction Decomposition for Evolvable Hardware , 2006, IEEE Transactions on Systems, Man, and Cybernetics, Part B (Cybernetics).

[5]  Julian Francis Miller,et al.  Redundancy and computational efficiency in Cartesian genetic programming , 2006, IEEE Transactions on Evolutionary Computation.

[6]  Takafumi Aoki,et al.  Evolutionary Synthesis of Arithmetic Circuit Structures , 2003, Artificial Intelligence Review.

[7]  David A. Patterson,et al.  Computer Architecture, Fifth Edition: A Quantitative Approach , 2011 .

[8]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[9]  Kalyan Veeramachaneni,et al.  Flex-GP: Genetic Programming on the Cloud , 2012, EvoApplications.

[10]  Riccardo Poli,et al.  Solving High-Order Boolean Parity Problems with Smooth Uniform Crossover, Sub-Machine Code GP and Demes , 2000, Genetic Programming and Evolvable Machines.

[11]  Michaela Sikulová,et al.  Coevolutionary Cartesian Genetic Programming in FPGA , 2013, ECAL.

[12]  Julian Francis Miller,et al.  Towards the automatic design of more efficient digital circuits , 2000, Proceedings. The Second NASA/DoD Workshop on Evolvable Hardware.

[13]  Julian Francis Miller,et al.  A new crossover technique for Cartesian genetic programming , 2007, GECCO '07.

[14]  Marco Tomassini,et al.  Spatially Structured Evolutionary Algorithms: Artificial Evolution in Space and Time (Natural Computing Series) , 2005 .

[15]  Lukas Sekanina,et al.  Hardware Accelerator of Cartesian Genetic Programming with Multiple Fitness Units , 2012 .

[16]  Wolfgang Banzhaf,et al.  Implementing cartesian genetic programming classifiers on graphics processing units using GPU.NET , 2011, GECCO.

[17]  Julian Francis Miller,et al.  Finding Needles in Haystacks Is Not Hard with Neutrality , 2002, EuroGP.

[18]  Erick Cantú-Paz,et al.  Efficient and Accurate Parallel Genetic Algorithms , 2000, Genetic Algorithms and Evolutionary Computation.

[19]  Julian Francis Miller,et al.  Cartesian genetic programming , 2000, GECCO '10.

[20]  Julian Francis Miller,et al.  Self modifying Cartesian Genetic Programming: Parity , 2009, 2009 IEEE Congress on Evolutionary Computation.

[21]  William F. Punch,et al.  Reducing Wasted Evaluations in Cartesian Genetic Programming , 2013, EuroGP.

[22]  A. P. Shanthi,et al.  Practical and scalable evolution of digital circuits , 2009, Appl. Soft Comput..