Unterstützung für Multithreading
Oft ist es sinnvoll, GaFrame im MultiThreaded-Modus zu betreiben. Weitere Erläuterungen dazu finden sich im Abschnitt Implementierung.
Nutzung von Multithreading
Warning
Multithreading ist standardmäßig nicht aktiviert und sollte nur genutzt werden, wenn die Fitnessfunktion
des vorliegenden Problems aufwändig zu berechnen ist im Verhältnis zum rechnerischen Mehraufwand, der durch
die Threadsynchronisation entsteht. Außerdem ist Multithreading nur bei Mehrprozessor- oder Mehrkernmaschinen
sinnvoll.
Sind diese Bedingungen erfüllt, bringt der Einsatz von Multithreading allerdings einen enormen Zeitgewinn.
Sind diese Bedingungen erfüllt, bringt der Einsatz von Multithreading allerdings einen enormen Zeitgewinn.
Multithreading wird einfach durch das Setzen der Property multiThreaded der Klasse de.htwdd.ga.GeneticAlgorithm aktiviert:
GeneticAlgorithm algorithm = new GeneticAlgorithm(KnapsackFitness.NUM_ITEMS, 100, 66, 20); ... algorithm.setMultiThreaded(true); algorithm.run();
Das Beispiel stammt aus dem schon im vorherigen Abschnitt erläuterten Beispielprogramm zum Rucksackproblem.
Zu beachten ist, dass pro Thread nur eine Instanz der Fitnessfunktion erzeugt wird, die dann im weiteren Verlauf wiederverwendet wird.


