Deployment of parallel linear genetic programming using GPUs on PC and video game console platforms
Department of Computer Science, Memorial University of Newfoundland, St. John’s, NL A1B 3X5, Canada
Genetic Programming and Evolvable Machines (18 February 2010)
@article{wilson2010deployment,
title={Deployment of parallel linear genetic programming using GPUs on PC and video game console platforms},
author={Wilson, G. and Banzhaf, W.},
journal={Genetic Programming and Evolvable Machines},
volume={11},
number={2},
pages={147–184},
issn={1389-2576},
year={2010},
publisher={Springer}
}
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.
November 9, 2010 by hgpu