Documentation > Advanced Concepts
The island scheme is enabled using the
Distribution scheme 🔗
For distributed environments, the island distribution scheme of evolutionary algorithms is especially well adapted. Islands of population evolve for a while on a remote node before being merged back into the global population. A new island is then generated until the termination criterion, i.e. the max total number of individual evaluation, has been reached.The island scheme is enabled using the
by Island
syntax.
For instance:
// Generate a workflow that orchestrates 100 concurrent islands.
// The workflow stops when 10,000 individuals have been evaluated.
val evolution =
NSGA2Evolution(
genome = Seq(x in (0.0, 1.0), y in (0.0, 1.0)),
objective = Seq(o1, o2),
evaluation = model,
termination = 10000,
parallelism = 100
) by Island(5 minutes) hook (workDirectory / "evolution")
// Construction of the complete mole with the execution environment, and the hook.
// Here the generated workflow will run using 4 threads of the local machine.
(evolution on LocalEnvironment(4))