Open AnthonyDickson opened 5 years ago
Python's default threading may be sufficient. Tutorial on python threading here. A simple article on parallel and distributed genetic algorithms found here
The general idea of how the program would work:
Checked cpu core utilisation - it is indeed single-threaded. Could go for the 'island' approach, or go for an approach where the population is divided into chunks and the current episode is simulated (i.e. see how long each pop lasts with current topology/weights) for each chunk on separate threads. With the latter approach the main thread will have to wait for the worker threads to complete before going onto crossover and mutation.
Expanding on the 'island' idea, could have creatures migrate between islands.
For example, on a quad core system one could run four genetic algorithms in parallel and then choose the best of the four.