Print

Print


I don't see anything out of the ordinary in your paramters below, and certainly the standard ECJ testing suite does 300 generations of 150 individuals in 2.5 seconds on my laptop.  I don't think it's GeneVectorIndividual.  This means it's *got* to be your fitness evaluation procedure, or maybe a custom clone method you wrote?

Try running as 
	java -Xprof ...
rather than
	java ...

... and see if the profiler kicks up a method which is taking up all the time.  Beyond that I can't help much without the actual code you're running.

[Also make sure you're using the latest SVN repository version so we're on the same page]

Sean

On Jun 29, 2017, at 9:46 PM, Enzo Fabbiani <[log in to unmask]> wrote:

> I'm having an issue of execution perfomance and I can't figure it out why. For testing purposes I have set 40 generations and is taking about a minute to end. 4000 generations elapsed time is about an hour.
> 
> In order to determine the cause of the problem I have set crossover and mutation probabilty to 0 and the problem persists, so that I assume is something on ECJ execution.
> 
> Someone can help me?
> 
> I have two objetives, one of them maximization and the other minimization. In fitness function I set fitness the inverse function (objectives[1] = (-1)*fitness2). Crossover and mutation as custom functions.
> 
> Here is my params file:
> 
> parent.0 = ../moosuite/moosuite.params
> eval.problem		= ec.app.MyProblem.MyProblem
> 
> evalthreads				= 2
> generations				= 4000
> quit-on-run-complete	= true
> 
> stat		= ec.multiobjective.MultiObjectiveStatistics
> stat.file	= $out.stat
> 
> pop 				= ec.Population
> pop.subpops  		= 1
> pop.subpop.0 		= ec.Subpopulation
> pop.subpop.0.size 	= 50
> 
> pop.subpop.0.species 		= ec.vector.GeneVectorSpecies
> pop.subpop.0.species.ind 	= ec.vector.GeneVectorIndividual
> pop.subpop.0.species.gene 	= ec.app.MyGene.MyGene
> 
> pop.subpop.0.species.fitness.num-objectives = 2
> pop.subpop.0.species.fitness.maximize = true
> 
> pop.subpop.0.species.crossover-type	= one
> pop.subpop.0.species.mutation-type	= reset
> pop.subpop.0.species.mutation-prob	= 0.05
> 
> pop.subpop.0.species.pipe		     			= ec.vector.breed.VectorMutationPipeline
> pop.subpop.0.species.pipe.likelihood        	= 1.0
> pop.subpop.0.species.pipe.source.0				= ec.vector.breed.VectorCrossoverPipeline
> pop.subpop.0.species.pipe.source.0.likelihood 	= 0.6
> pop.subpop.0.species.pipe.source.0.source.0 	= ec.select.TournamentSelection
> pop.subpop.0.species.pipe.source.0.source.1 	= same
> select.tournament.size 							= 2
> 
> seed.0		= time
> seed.1		= time
>