Print

Print


On Mar 24, 2011, at 1:26 PM, Nikola N. wrote:

> At some point of time all the threads are running, at some point  
> only single
> thread is running by the slave.

Well, keep in mind that the Slave has to read in Individuals from the  
stream before it can start working on them (in the "evolve" mode I  
suggested to you).  This means that in a single thread it's sitting  
there waiting for all the Individuals to be sent over the stream, and  
only then does it begin evaluating them in a multithreaded fashion.   
If your evaluation is expensive with respect to network transfer  
(which is usually the case for situations where distributed EC makes  
sense) then most of your time will be spent in the multithreaded  
section.

At the very least if I can get to whipping up the multithreaded  
"standard" slave evaluation (non-"evolve" mode) we can set it up so  
that as soon as an Individual is read in it immediately begins  
evaluation.  But even so there will be a period of time when the  
fitnesses are sent back that things are gonna be in single threaded  
mode for a bit.  There's just no way around it short of constructing  
an asynchronous response.

Sean