Page 97 - 49A Field Guide to Genetic Programming
P. 97
Chapter 10
Fast and Distributed
Genetic Programming
Users of all artificial intelligence tools are always eager to extend the bound-
aries of their techniques, for example by attacking more and more difficult
problems. In fact, to solve hard problems it may be necessary to push GP
to the limit — populations of millions of programs and/or long runs may be
necessary.
There are a number of techniques to speed up, parallelise and distribute
GP search. We start by looking at ways to reduce the number of fitness
evaluations or increase their effectiveness (Section 10.1) and ways to speed
up their execution (Section 10.2). We then look at the idea of running GP
in parallel (Section 10.3) and point out that faster evaluation is not the
only reason for doing so, as geographic distribution has advantages in its
own right. In Section 10.4 we describe master–slave parallel architectures
(Section 10.4.1), running GP on graphics hardware (Section 10.4.2) and
FPGAs (Section 10.4.3). Section 10.4.4 describes a fast method to exploit
the parallelism available on every computer. Finally, Section 10.5 concludes
this chapter with a brief discussion of distributed, even global, evolution of
programs.
10.1 Reducing Fitness Evaluations and/or
Increasing their Effectiveness
While admirers of linear GP will suggest that machine code GP is the ul-
timate in speed, all forms of GP can be made faster in a number of ways.
The first is to reduce the number of times a program is evaluated.
Many applications find the fitness of programs by running them on mul-
83