pyevolve crashes on using multiprocessing

89 views
Skip to first unread message

Shayan RC

unread,
Mar 22, 2017, 6:44:45 PM3/22/17
to pyevolve
I am using pyevolve 0.6rc.

My code is as follows:

    setOfAlleles = GAllele.GAlleles()

    period_range = GAllele.GAlleleRange(3, 60)
    multiplier_range = GAllele.GAlleleRange(1, 10)

    setOfAlleles.add(period_range)
    setOfAlleles.add(multiplier_range)

    genome = G1DList.G1DList(2)
    genome.setParams(allele=setOfAlleles)

    genome.evaluator.set(evaluate_strategy)
    genome.mutator.set(Mutators.G1DListMutatorAllele)
    genome.initializator.set(Initializators.G1DListInitializatorAllele)

    ga = GSimpleGA.GSimpleGA(genome)
    ga.selector.set(Selectors.GRankSelector)
    ga.setGenerations(50)
    ga.setPopulationSize(20)
    ga.setMutationRate(0.2)

    ga.setElitism(True)
    ga.setMinimax(Consts.minimaxType["maximize"])
    ga.setElitismReplacement(5)

    pop = ga.getPopulation()
    pop.setMultiProcessing(flag=True, full_copy=False)

    ga.evolve(freq_stats=1)

Whenever I set multiprocessing to True, it crashes with the following error:

Traceback (most recent call last):
  File "/run/media/xion/storage/WorkSpace/Backtesters/GA_Optimize.py", line 103, in <module>
    ga.evolve(freq_stats=1)
  File "/usr/lib/python2.7/site-packages/pyevolve/GSimpleGA.py", line 755, in evolve
    self.internalPop.evaluate()
  File "/usr/lib/python2.7/site-packages/pyevolve/GPopulation.py", line 373, in evaluate
    results = proc_pool.map(multiprocessing_eval, self.internalPop)
  File "/usr/lib/python2.7/multiprocessing/pool.py", line 251, in map
    return self.map_async(func, iterable, chunksize).get()
  File "/usr/lib/python2.7/multiprocessing/pool.py", line 567, in get
    raise self._value
AssertionError

Can anyone tell me what is the cause of AssertionErro and how to fix it?
It works fine without multiprocessing.

Saeed Soltani Moghadam

unread,
Jul 4, 2017, 5:21:43 AM7/4/17
to pyevolve
Dear

First try to install this version since the version you're using now is somehow a buggy one.

ga.setMultiProcessing(True,False,4)

you may need to change "4" according to number of processor you want to use.

Reply all
Reply to author
Forward
0 new messages