I am just beginning to use Scoop and on my first run of a DEAP-based GA algorithm I got several errors. The simulation works fine when I use the standard map function in my evaluation. When I switch to scoop.futures.map I get a crash. The most relevant part of the message to console includes the following lines:
1. [2015-03-12 15:33:37,894] scoopzmq (
127.0.0.1:51756) WARNING Pickling Error: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed
2. [2015-03-12 15:33:37,895] scoopzmq (
127.0.0.1:58058) ERROR An instance could not find its base reference on a worker. Ensure that your objects have their definition available in the root scope of your program.
3, 'module' object has no attribute 'Individual'
4. [2015-03-12 15:33:37,895] scoopzmq (
127.0.0.1:51756) WARNING Pickling Error: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed
5, [2015-03-12 15:33:37,896] scoopzmq (
127.0.0.1:51756) WARNING Pickling Error: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed
6. [2015-03-12 15:33:37,896] scoopzmq (
127.0.0.1:51756) ERROR A worker exited unexpectedly. Read the worker logs for more information. SCOOP pool will now shutdown.
I wonder:
1. Where are the workers' logs referenced to in the last error line? Do I have to turn on logging explicitly?
2. (Related) How can I figure out which unpicklable function I am apparently using that's causing the warnings in lines 1, 4, and 5? (I have three workers running on a 4 cores, CPU, so I guess it's the same line in a function called by my evaluation function, unless the identical port number after the local host implies that's the same worker?).
3. And finally, how to locate the source of the problem at line 3? Or is line 3 adding information to the previous error message in line (2)?
Thanks for the help,
Stefano