Genetic programming II: automatic discovery of reusable programs
Genetic programming II: automatic discovery of reusable programs
Genetic programming: an introduction: on the automatic evolution of computer programs and its applications
A Representation for the Adaptive Generation of Simple Sequential Programs
Proceedings of the 1st International Conference on Genetic Algorithms
Complexity Compression and Evolution
Proceedings of the 6th International Conference on Genetic Algorithms
IEEE Micro
Accelerator: using data parallelism to program GPUs for general-purpose uses
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
Evolutionary Computing on Consumer Graphics Hardware
IEEE Intelligent Systems
A data parallel approach to genetic programming using programmable graphics hardware
Proceedings of the 9th annual conference on Genetic and evolutionary computation
Deployment of CPU and GPU-based genetic programming on heterogeneous devices
Proceedings of the 11th Annual Conference Companion on Genetic and Evolutionary Computation Conference: Late Breaking Papers
Fast genetic programming on GPUs
EuroGP'07 Proceedings of the 10th European conference on Genetic programming
A SIMD interpreter for genetic programming on GPU graphics cards
EuroGP'08 Proceedings of the 11th European conference on Genetic programming
Evolution of vertex and pixel shaders
EuroGP'05 Proceedings of the 8th European conference on Genetic Programming
Parallel genetic algorithms on programmable graphics hardware
ICNC'05 Proceedings of the First international conference on Advances in Natural Computation - Volume Part III
Implementing cartesian genetic programming classifiers on graphics processing units using GPU.NET
Proceedings of the 13th annual conference companion on Genetic and evolutionary computation
Hi-index | 0.00 |
We present a general method for deploying parallel linear genetic programming (LGP) to the PC and Xbox 360 video game console by using a publicly available common framework for the devices called XNA (for "XNA's Not Acronymed"). By constructing the LGP within this framework, we effectively produce an LGP "game" for PC and XBox 360 that displays results as they evolve. We use the GPU of each device to parallelize fitness evaluation and the mutation operator of the LGP algorithm, thus providing a general LGP implementation suitable for parallel computation on heterogeneous devices. While parallel GP implementations on PCs are now common, both the implementation of GP on a video game console using GPU and the construction of a GP around a framework for heterogeneous devices are novel contributions. The objective of this work is to describe how to implement the parallel execution of LGP in order to use the underlying hardware (especially GPU) on the different platforms while still maintaining loyalty to the general methodology of the LGP algorithm built for the common framework. We discuss the implementation of texture-based data structures and the sequential and parallel algorithms built for their use on both CPU and GPU. Following the description of the general algorithm, the particular tailoring of the implementations for each hardware platform is described. Sequential (CPU) and parallel (GPU-based) algorithm performance is compared on both PC and video game platforms using the metrics of GP operations per second, actual time elapsed, speedup of parallel over sequential implementation, and percentage of execution time used by the GPU versus CPU.