Accelerating floating-point fitness functions in evolutionary algorithms: a FPGA-CPU-GPU performance comparison

Many large combinatorial optimization problems tackled with evolutionary algorithms often require very high computational times, usually due to the fitness evaluation. This fact forces programmers to use clusters of computers, a computational solution very useful for running applications of intensive calculus but having a high acquisition price and operation cost, mainly due to the Central Processing Unit (CPU) power consumption and refrigeration devices. A low-cost and high-performance alternative comes from reconfigurable computing, a hardware technology based on Field Programmable Gate Array devices (FPGAs). The main objective of the work presented in this paper is to compare implementations on FPGAs and CPUs of different fitness functions in evolutionary algorithms in order to study the performance of the floating-point arithmetic in FPGAs and CPUs that is often present in the optimization problems tackled by these algorithms. We have taken advantage of the parallelism at chip-level of FPGAs pursuing the acceleration of the fitness functions (and consequently, of the evolutionary algorithms) and showing the parallel scalability to reach low cost, low power and high performance computational solutions based on FPGA. Finally, the recent popularity of GPUs as computational units has moved us to introduce these devices in our performance comparisons. We analyze performance in terms of computation times and economic cost.

[1]  Dr. Zbigniew Michalewicz,et al.  How to Solve It: Modern Heuristics , 2004 .

[2]  Karl S. Hemmert,et al.  Closing the gap: CPU and FPGA trends in sustainable floating-point BLAS performance , 2004, 12th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[3]  Thomas Steinke,et al.  High-Performance Reconfigurable Computing , 2012, Int. J. Reconfigurable Comput..

[4]  Hideharu Amano,et al.  A Performance Evaluation of CUBE: One-Dimensional 512 FPGA Cluster , 2010, ARC.

[5]  A. M. Wahdan,et al.  Introducing an FPGA based genetic algorithms in the applications of blind signals separation , 2003, The 3rd IEEE International Workshop on System-on-Chip for Real-Time Applications, 2003. Proceedings..

[6]  Johann Dréo,et al.  Metaheuristics for Hard Optimization: Methods and Case Studies , 2005 .

[7]  Kejitan Domas Discovery of Maximal Distance Codes Using Genetic Algorithms , 1990 .

[8]  F. H. Bennett,et al.  Rapidly Reconfigurable Field-Programmable Gate Arrays for Accelerating Fitness Evaluation in Genetic Programming , 1997 .

[9]  Javier Cano,et al.  Genetic Algorithm for Boolean minimization in an FPGA cluster , 2011, The Journal of Supercomputing.

[10]  Kevin Skadron,et al.  Accelerating Compute-Intensive Applications with GPUs and FPGAs , 2008, 2008 Symposium on Application Specific Processors.

[11]  Enrique Alba,et al.  Solving the error correcting code problem with parallel hybrid heuristics , 2004, SAC '04.

[12]  장훈,et al.  [서평]「Computer Organization and Design, The Hardware/Software Interface」 , 1997 .

[13]  S. Enzo,et al.  A Profile-Fitting Procedure for Analysis of Broadened X-ray Diffraction Peaks. I. Methodology , 1988 .

[14]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[15]  Clive Maxfield,et al.  The Design Warrior's Guide to FPGAs: Devices, Tools and Flows , 2004 .

[16]  Mohamed Tarbouchi,et al.  FPGA Implementation of Genetic Algorithm for UAV Real-Time Path Planning , 2009, J. Intell. Robotic Syst..

[17]  D. Buell High-Performance Reconfigurable Computing , 2007 .

[18]  H.E. Mostafa,et al.  Hardware implementation of genetic algorithm on FPGA , 2004, Proceedings of the Twenty-First National Radio Science Conference, 2004. NRSC 2004..

[19]  David A. Patterson,et al.  Computer Organization and Design, Fourth Edition, Fourth Edition: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design) , 2008 .

[20]  Tarek A. El-Ghazawi,et al.  Guest Editors' Introduction: High-Performance Reconfigurable Computing , 2007, Computer.

[21]  José Ignacio Hidalgo,et al.  A parallel compact genetic algorithm for multi-FPGA partitioning , 2001, Proceedings Ninth Euromicro Workshop on Parallel and Distributed Processing.

[22]  Witold Kosiński,et al.  Advances in Evolutionary Algorithms , 2008 .

[23]  E. Marinari,et al.  Ianus: An Adaptive FPGA Computer S PECIAL- P URPOSE C OMPUTING , 2006 .

[24]  Tsutomu Maruyama,et al.  Performance comparison of FPGA, GPU and CPU in image processing , 2009, 2009 International Conference on Field Programmable Logic and Applications.

[25]  Sanyou Zeng,et al.  Evolvable Systems: From Biology to Hardware, 7th International Conference, ICES 2007, Wuhan, China, September 21-23, 2007, Proceedings , 2007, ICES.

[26]  Maya Gokhale,et al.  Reconfigurable Computing: Accelerating Computation with Field-Programmable Gate Arrays , 2005 .

[27]  Jie Cheng,et al.  Programming Massively Parallel Processors. A Hands-on Approach , 2010, Scalable Comput. Pract. Exp..

[28]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

[29]  Alexander Gelbukh,et al.  MICAI 2006: Advances in Artificial Intelligence, 5th Mexican International Conference on Artificial Intelligence, Apizaco, Mexico, November 13-17, 2006, Proceedings , 2006, MICAI.

[30]  E. J. Mittemeijer,et al.  The determination of crystallite-size and lattice-strain parameters in conjunction with the profile-refinement method for the determination of crystal structures , 1983 .

[31]  Jerome B. Hastings,et al.  Rietveld refinement of Debye–Scherrer synchrotron X‐ray data from Al2O3 , 1987 .

[32]  S. F.,et al.  The Use of the Pseudo-Voigt Function in the Variance Method of X-ray Line-Broadening Analysis , 1997 .

[33]  Scott Hauck,et al.  Reconfigurable Computing: The Theory and Practice of FPGA-Based Computation , 2007 .

[34]  E. Alba,et al.  Evolutionary algorithms for optimal placement of antennae in radio network design , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..

[35]  Sami Khuri,et al.  Heuristic algorithms for the terminal assignment problem , 1997, SAC '97.

[36]  Frank Nielsen,et al.  Combinatorial optimization algorithms for radio network planning , 2001, Theor. Comput. Sci..

[37]  Clive ldMax rd Maxfield,et al.  The design warrior's guide to FPGAs , 2004 .

[38]  Miguel A. Vega-Rodríguez,et al.  Genetic algorithms using parallelism and FPGAs: the TSP as case study , 2005, 2005 International Conference on Parallel Processing Workshops (ICPPW'05).

[39]  Cameron D. Patterson,et al.  Searching for Transient Pulses with the ETA Radio Telescope , 2008, TRETS.

[40]  Jin Wang,et al.  Complete FPGA Implemented Evolvable Image Filters , 2006, MICAI.

[41]  John R. Koza,et al.  Evolving Sorting Networks using Genetic Programming an Reconfigurable Xilinx 6216 Field-Programmable Gate Array , 1998 .

[42]  Miriam Leeser,et al.  FPGA Supercomputing Platforms, Architectures, and Techniques for Accelerating Computationally Complex Algorithms , 2009, EURASIP J. Embed. Syst..

[43]  F. Sánchez-Bajo,et al.  The use of the pseudo-Voigt function in the variance method of X-ray line-broadening analysis. Erratum , 1997 .

[44]  Wayne Luk,et al.  A comparison of CPUs, GPUs, FPGAs, and massively parallel processor arrays for random number generation , 2009, FPGA '09.

[45]  Pierre Kuonen,et al.  Parallel Island-Based Genetic Algorithm for Radio Network Design , 1997, J. Parallel Distributed Comput..

[46]  Lane A. Hemaspaandra,et al.  Using simulated annealing to design good codes , 1987, IEEE Trans. Inf. Theory.

[47]  Gerhard Fohler,et al.  System software for embedded applications , 2004, 17th International Conference on VLSI Design. Proceedings..

[48]  Volodymyr Kindratenko,et al.  Comparing CPU and FPGA Application Performance , 2006 .

[49]  Qing Wu,et al.  Hardware acceleration of multi-deme genetic algorithm for the application of DNA codeword searching , 2007, GECCO '07.

[50]  Kyrre Glette,et al.  A Flexible On-Chip Evolution System Implemented on a Xilinx Virtex-II Pro Device , 2005, ICES.

[51]  Richard W. Hamming,et al.  Error detecting and error correcting codes , 1950 .