Improving the computational speed of genetic programming

Genetic Programming (GP) is well known as a computationally intensive technique especially when considering regression or classification tasks with large datasets. Consequently, there has been considerable work conducted into improving the computational speed of GP. Recently, this has concentrated o...

Full description

Bibliographic Details
Main Author: Chitty, Darren M.
Published: University of Bristol 2015
Subjects:
Online Access:http://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.686812
id ndltd-bl.uk-oai-ethos.bl.uk-686812
record_format oai_dc
spelling ndltd-bl.uk-oai-ethos.bl.uk-6868122017-03-16T16:23:30ZImproving the computational speed of genetic programmingChitty, Darren M.2015Genetic Programming (GP) is well known as a computationally intensive technique especially when considering regression or classification tasks with large datasets. Consequently, there has been considerable work conducted into improving the computational speed of GP. Recently, this has concentrated on exploiting highly parallel architectures in the form of Graphics Processing Units (GPUs). However, the reported speeds fall considerably short of the computational capabilities of these GPUs. This thesis investigates this issue, seeking to considerably improve the computational speed of GP. Indeed, this thesis will demonstrate that considerable improvements in the speed of GP can be achieved when fully exploiting a parallel Central Processing Unit (CPU) exceeding the performance of the latest GPU implementations. This is achieved by recognising that GP is as much a memory bound technique as a compute bound technique. By adopting a two dimensional stack approach, better exploitation of memory resources is achieved in addition to reducing interpreter overheads. This approach is applied to CPU and GPU implementations and compares favorably with compiled versions of GP. The second aspect of this thesis demonstrates that although considerable performance gains can be achieved using parallel hardware, the role of efficiency within GP should not be forgotten. Efficiency saving can boost the computational speed of parallel GP significantly. Two methods are considered, parsimony pressure measures and efficient tournament selection. The second efficiency technique enables a CPU implementation of GP to outperform a GPU implementation for classification type tasks even though the CPU has only a tenth of the computational power. Finally both CPU and GPU are combined for ultimate performance. Speedups of more than a thousand fold over a basic sequential version of GP are achieved and three fold over the best GPU implementation from the literature. Consequently, this speedup increases the usefulness of GP as a machine learning technique.006.3University of Bristolhttp://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.686812Electronic Thesis or Dissertation
collection NDLTD
sources NDLTD
topic 006.3
spellingShingle 006.3
Chitty, Darren M.
Improving the computational speed of genetic programming
description Genetic Programming (GP) is well known as a computationally intensive technique especially when considering regression or classification tasks with large datasets. Consequently, there has been considerable work conducted into improving the computational speed of GP. Recently, this has concentrated on exploiting highly parallel architectures in the form of Graphics Processing Units (GPUs). However, the reported speeds fall considerably short of the computational capabilities of these GPUs. This thesis investigates this issue, seeking to considerably improve the computational speed of GP. Indeed, this thesis will demonstrate that considerable improvements in the speed of GP can be achieved when fully exploiting a parallel Central Processing Unit (CPU) exceeding the performance of the latest GPU implementations. This is achieved by recognising that GP is as much a memory bound technique as a compute bound technique. By adopting a two dimensional stack approach, better exploitation of memory resources is achieved in addition to reducing interpreter overheads. This approach is applied to CPU and GPU implementations and compares favorably with compiled versions of GP. The second aspect of this thesis demonstrates that although considerable performance gains can be achieved using parallel hardware, the role of efficiency within GP should not be forgotten. Efficiency saving can boost the computational speed of parallel GP significantly. Two methods are considered, parsimony pressure measures and efficient tournament selection. The second efficiency technique enables a CPU implementation of GP to outperform a GPU implementation for classification type tasks even though the CPU has only a tenth of the computational power. Finally both CPU and GPU are combined for ultimate performance. Speedups of more than a thousand fold over a basic sequential version of GP are achieved and three fold over the best GPU implementation from the literature. Consequently, this speedup increases the usefulness of GP as a machine learning technique.
author Chitty, Darren M.
author_facet Chitty, Darren M.
author_sort Chitty, Darren M.
title Improving the computational speed of genetic programming
title_short Improving the computational speed of genetic programming
title_full Improving the computational speed of genetic programming
title_fullStr Improving the computational speed of genetic programming
title_full_unstemmed Improving the computational speed of genetic programming
title_sort improving the computational speed of genetic programming
publisher University of Bristol
publishDate 2015
url http://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.686812
work_keys_str_mv AT chittydarrenm improvingthecomputationalspeedofgeneticprogramming
_version_ 1718423049601024000