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...
Main Author: | |
---|---|
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 |