Moyo, Edmore (2019) Accelerated cooperative co-evolution on multi-core architectures, MSc.
PDF
EdmoreMoyoMSc.pdf Download (1MB) |
Abstract
The Cooperative Co-Evolution model has been used in Evolutionary Computation to optimize the training of artificial neural networks (ANNs). This architecture has proven to be a useful extension to domains such as Neuro-Evolution (NE), which is the training of ANNs using concepts of natural evolution. However, there is a need for real-time systems and the ability to solve more complex tasks which has prompted a further need to optimize these Cooperative Co-Evolution methods. Cooperative Co-Evolution methods consist of a number of phases, however the evaluation phase is still the most compute intensive phase, for some complex tasks taking as long as weeks to complete. This study uses NE as a test case study and we design a parallel Cooperative Co-Evolution processing framework and implement the optimized serial and parallel versions using the Golang (Go) programming language. Go is a multi-core programming language with first-class constructs, channels and goroutines, that make it well suited to parallel programming. Our study focuses on Enforced Subpopulations (ESP) for single-agent systems and Multi-Agent ESP for multi-agent systems. We evaluate the parallel versions in the benchmark tasks; double pole balancing and prey-capture, for single and multi-agent systems respectively, in tasks of increasing complexity. We observe a maximum speed-up of 20x for the parallel Multi-Agent ESP implementation over our single core optimized version in the prey-capture task and a maximum speedup of 16x for ESP in the harder version of double pole balancing task. We also observe linear speed-ups for the difficult versions of the tasks for a certain range of cores, indicating that the Go implementations are efficient and that the parallel speed-ups are better for more complex tasks. We find that in complex tasks, the Cooperative Co-Evolution Neuro-Evolution (CCNE) methods are amenable to multi-core acceleration, which provides a basis for the study of even more complex Cooperative Co-Evolution methods in a wider range of domains.
Item Type: | Electronic thesis or dissertation (MSc) |
---|---|
Uncontrolled Keywords: | Cooperative Co-Evolution Evolutionary Computation Golang parallelization |
Subjects: | Computing methodologies > Artificial intelligence Computing methodologies > Modeling and simulation |
Date Deposited: | 14 May 2019 |
Last Modified: | 10 Oct 2019 15:31 |
URI: | http://pubs.cs.uct.ac.za/id/eprint/1308 |
Actions (login required)
View Item |