We have designed and constructed a genetic algorithm engine using a systolic design methodology. The approach has a number of advantages. Firstly the design processes is systematic. A C source code version of the algorithm is used as a starting point and progressively the code is re-written into a form from where systolic cells can be designed. Secondly the modular nature of the arrays allow easy expansion of the design for different requirements (larger populations in this example). Hardware designs are re-used extensively and, in combination with reconfigurable computing techniques, can be swapped in or out on an application specific basis to construct arrays of the correct size. This can also be extended to swapping in and out whole elements of the macro-pipeline so that alternative operators, such as Tournament Selection can be employed. Thirdly, a traditional benefit of systolic arrays applies. The resultant design is massively parallel and significant throughput can be achieved.
[1]
Graham M. Megson,et al.
Synthesis of a systolic array genetic algorithm
,
1998,
Proceedings of the First Merged International Parallel Processing Symposium and Symposium on Parallel and Distributed Processing.
[2]
Graham M. Megson,et al.
Generic systolic array for genetic algorithms
,
1997
.
[3]
David E. Goldberg,et al.
Genetic Algorithms in Search Optimization and Machine Learning
,
1988
.
[4]
H. T. Kung.
Why systolic architectures?
,
1982,
Computer.
[5]
Graham M. Megson,et al.
Systolic array library for hardware genetic algorithms
,
1998
.