A Fair Comparison of Modern CPUs and GPUs Running the Genetic Algorithm under the Knapsack Benchmark

  • Jiri Jaros
  • Petr Pospichal
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7248)


The paper introduces an optimized multicore CPU implementation of the genetic algorithm and compares its performance with a fine-tuned GPU version. The main goal is to show the true performance relation between modern CPUs and GPUs and eradicate some of myths surrounding GPU performance. It is essential for the evolutionary community to provide the same conditions and designer effort to both implementations when benchmarking CPUs and GPUs. Here we show the performance comparison supported by architecture characteristics narrowing the performance gain of GPUs.


GPU multicore CPU knapsack performance comparison CUDA 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Amdahl, G.M.: Validity of the single processor approach to achieving large scale computing capabilities. In: Proceedings of the April 1820 1967 Spring Joint Computer Conference, vol. 23(4), pp. 483–485 (1967)Google Scholar
  2. 2.
    Chandra, R., Dagum, L., Kohr, D., et al.: Parallel programming in OpenMP. Morgan Kaufmann (2001)Google Scholar
  3. 3.
    Danalis, A., Marin, G., et al.: The Scalable HeterOgeneous Computing (SHOC) Benchmark Suite Categories and Subject Descriptors. In: Proceedings of the Third Workshop on General-Purpose Computation on Graphics Processors, GPGPU 2010 (2010)Google Scholar
  4. 4.
    Holland, J.H.: Adaptation in Natural and Artificial Systems. University of Michigan Press (1975)Google Scholar
  5. 5.
    Jaros, J.: Jiri Jaros’s software website,
  6. 6.
    Kirk, D.B., Hwu, W.-M.: Programming Massively Parallel Processors: A Hands-on Approach. Morgan Kaufmann (2010)Google Scholar
  7. 7.
    Lee, V.W., Hammarlund, P., Singhal, R., et al.: Debunking the 100X GPU vs. CPU myth. In: Proceedings of the 37th Annual International Symposium on Computer Architecture, ISCA 2010, p. 451. ACM Press, New York (2010)CrossRefGoogle Scholar
  8. 8.
    Luong, T.V.: GPU-based Island Model for Evolutionary Algorithms. Evaluation, 1089–1096 (2010)Google Scholar
  9. 9.
    Malony, A.D., Biersdorff, S., Shende, S., et al.: Parallel Performance Measurement of Heterogeneous Parallel Systems with GPUs. Performance ComputingGoogle Scholar
  10. 10.
    NVIDIA: CUDA Toolkit 4. 0 CURAND Guide (2011)Google Scholar
  11. 11.
    NVIDIA: Cuda c best practices guide (2011)Google Scholar
  12. 12.
    NVIDIA: Math Library Performance CUDA Math Libraries (2011)Google Scholar
  13. 13.
    Pospichal, P., Schwarz, J., Jaros, J.: Parallel genetic algorithm solving 0/1 knapsack problem running on the gpu. In: 16th International Conference on Soft Computing MENDEL, pp. 64–70. Brno University of Technology, Brno (2010)Google Scholar
  14. 14.
    Salmon, J.K., Moraes, M.A., Dror, R.O., Shaw, D.E.: Parallel Random Numbers: As Easy as 1, 2, 3. In: Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, SC 2011, pp. 16:1–16:12. ACM Press, New York (2011)Google Scholar
  15. 15.
    Sanders, J., Kandrot, E.: CUDA by Example: An Introduction to General-Purpose GPU Programming. Addison-Wesley (2010)Google Scholar
  16. 16.
    Shah, R., Narayanan, P., Kothapalli, K.: GPU-Accelerated Genetic Algorithms, Scholar
  17. 17.
    Simonsen, M., Pedersen, C.N.S., Christensen, M.H.: GPU-Accelerated High-Accuracy Molecular Docking using Guided Differential Evolution. In: Proceedings of the Genetic and Evolutionary Computation Confernce GECCO 2011. ACM Press (2011)Google Scholar
  18. 18.
    Simões, A., Costa, E.: An Evolutionary Approach to the Zero / One Knapsack Problem Testing Ideas from Biology. In: The Fifth International Conference on Artificial Neural Networks and Genetic Algorithms (ICANNGA 2001), April 22-25 (2001)Google Scholar
  19. 19.
    Tomassini, M.: Spatially Structured Evolutionary Algorithms. Springer, Heidelberg (2005)zbMATHGoogle Scholar
  20. 20.
    Wall, M.: GAlib: A C ++ Library of Genetic Algorithm Components. Statistics (August 1996)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Jiri Jaros
    • 1
  • Petr Pospichal
    • 2
  1. 1.ANU College of Engineering and Computer ScienceThe Australian National UniversityCanberraAustralia
  2. 2.Faculty of Information TechnologyBrno University of TechnologyBrnoCzech Republic

Personalised recommendations