logo NEO

 

xxGA:Distributed Version

Example New Problems Self-Adaptiveness
Compiling Configuration Distributed Version



Implementing a Distributed Version

In this parallel model the population is divided into 'n' islands and these islands are distributed among 'm' different machines. In the following example we show the configuration file for 8 islands, each one working on a different machine.

// System config file
[NUMBER_OF_ISLANDS]
8
[WORKSTATION_INFO]
8
catm0 1 1
catm1 1 2
catm2 1 3
catm3 1 4
catm4 1 5
catm5 1 6
catm6 1 7
catm7 1 8
[ISLAND_CONFIG_FILES]
0
island.params
[SYNCHRONIZATION]
async_mode
[MIGRATION_GAP]
1024
[NUMBER_OF_MIGRANTS]
1
[CYCLES]
100000
[SEEDS]
5 7 53 11 23 13 3 17
[MIG_POLICY_FOR_SELECTION]
mig_random
[MIG_POLICY_FOR_REPLACEMENT]
mig_if_better
[TARGET_FITNESS]
300500.0

The structure of a configuration file like this one is:

<SistConfigFile> ::= <WSISection> [<Comment>]
    <NIslands> [<Comment>]
    <ICFSection> [<Comment>]
    <SyncMode> [<Comment>]
    {<OptionalSections> [<Comment>]}
<OptionalSections> ::= Epsilon |
    <MigGap> | <NMigrants> | <Cycles> | <ProbConfigFile>
    <Seeds> | <MigSelection> | <MigReplac> | <CheckPoints>
<WSISection> ::= [workstation_info]
    {<WSLine>} // once or more
<WSLine> ::= <WSName> <Integer> {<gaid>} // <gaid> is repeated from 1 to <Integer>
<Identifier> ::= {[a|b|...|z|0|...|9]} // once or more
<WSName> ::= <Identifier>
<Cardinal> ::= {[0|1|2|3|4|5|6|7|8|9]} // once or more
<Cardinal*> ::= [1|2|3|4|5|6|7|8|9]{[0|1|2|3|4|5|6|7|8|9]} // once or more
<gaid> ::= ga<Cardinal*>
<ICFSection> ::= [island_config_files]
    [0 <IslandConfigFile> | <IConfigFileList>]
<IConfigFileList> ::= <NGAs>
    {<gaid> <IslandConfigFile>} // repeat from 1 to <NGAs>
<IslandConfigFile> ::= <Identifier>
<NGAs> ::= <Cardinal*>
<NIslands> ::= [number_of_islands]
    <NGAs>
<SyncMode> ::= [synchronization]
    [sync_mode | async_mode]
<MigGap> ::= [migration_gap]
    <Cardinal> // default 10 evals
<NMigrants> ::= [number_of_migrants]
    <Cardinal> // default 1
<Cycles> ::= [cycles]
    <Cardinal*> // default 10 evals
<ProbConfigFile> ::= [problem_config_file]
    <Identifier> // default empty
<Seeds> ::= [seeds]
    [0 | <SeedList>] // default random seeds
<SeedList> ::= {<Cardinal>} // repeat from 1 to <NGAs>
<MigSelection> ::= [mig_policy_for_selection]
    [mig_random | mig_best] // default mig_random
<MigReplac> ::= [mig_policy_for_replacement]
    [mig_least_fit | mig_if_better] // default mig_if_better
<CheckPoints> ::= [check_points]
    {<Checkp><Cardinal>} // repeat twelve times
<Checkp> ::= ga_stats | sch_stats | proc_stats | min | max | avg | evals |
    eval_mam | hammingd | best | worst | solution
<Comment> ::= // _ {<Identifier> | _ | <Symbol>} // zero or more times
<Symbol> ::= !|"|·|$|%|&|/|(|)|=|?|¿|¡|*|-|<|>|,|;|.|:|_|[|]|{|}|º|#|ª|¬|+|Ç|ñ|Ñ|á|é|í|ó|ú|Á|É|Í|Ó|Ú
Our Software

orangebox Mallba

orangebox DLOPT

orangebox epiGA

orangebox epiGApy

orangebox ssGA

orangebox JGDS

orangebox xxGA

orangebox JCell

orangebox MHTB

orangebox DEME

orangebox JMetal

orangebox More...

orangebox Go Back



J. Cabello Galisteo 2008