It looks like the slave thinks it needs to load the MasterProblem as a problem, which only the master should do. What I do is organize my params files like this:


And then all app-master.params contains is this:
   parent.0 = app.params
   eval.masterproblem = ec.eval.MasterProblem
   eval.master.port = 15000 (NOT eval.masterproblem.port!)
   eval.masterproblem.job-size = 1 (or whatever)
   eval.masterproblem.max-jobs-per-slave = 1 (or whatever)
   eval.compression = true
And all app-slave.params contains is this:

   parent.0 = app-master.params = (or whatever)
   eval.return-inds = false (or whatever)
Note that you set eval.masterproblem to ec.eval.MasterProblem. You should leave eval.problem set to the actual Problem.

Hope that helps,


On Feb 4, 2011, at 12:10 PM, Nikola N. wrote:

Hello, I have tried to start the example master / slave: coevolve1, run
single computer.

I have set the following lines in the coevolve1.master.params  and

verbosity = 0
eval.compression = false

However I experienced problems by starting the coevolve1 master/slave. Here
is the printout:
- Master response:

Threads:  breed/1 eval/1
Seed: -241285081
Job: 0
Setting up
Initializing Generation 0
Slave / connected successfully.
Slave(/ Slave is shutting down....

- Slave response:
reading next problem
Read problem: 2
Exception in thread "MainThread: " java.lang.NullPointerException
       at ec.eval.MasterProblem.evaluate(
       at ec.eval.Slave.evaluateGroupedProblemForm(
       at ec.eval.Slave.main(

- Also since there are going to be some changes around coevolve stuff, are
there any changes also planned to be added to the master/slave ?