Sean: How about attaching a trial counter to each individual so that
slaves could base the seed on that counter?
On Aug 12, 2008, at 9:03 PM, Sean Luke <[log in to unmask]> wrote:
> Sure, the slaves can be hacked to ignore the seed given them and
> instead use a seed loaded from a parameter file. But it's not as
> useful as you'd think. ECJ's master-slave facility is not
> synchronous, meaning that any slave can be used to evaluate any
> individual, in any order, and take as long as it needs. This allows
> the facility to be much more efficient, but in turn, it is going to
> make replicability nearly impossible because who knows what slave
> will be asked to evaluate individual X next time around...
> If you farm out the evaluations as described below, AND were using
> generational evolution, AND you guaranteed that the slaves
> registered themselves in the same order initially (perhaps by
> having one register every 5 second -- I made that up just now), yes,
> I *think* you could guarantee replicability, but I'm not positive.
> On Aug 12, 2008, at 11:23 AM, David Robert White wrote:
>> As I understand, when using Master-Slave evaluation the Master
>> generates a seed from the wallclock and sends it to the slaves. As
>> a result, the runs are not repeatable regardless of the timings of
>> evaluation by the slaves. Can I change this so that the slaves are
>> given seeds from their parameter files, or from the Mersenne
>> Twister in the Master? Please could you let me know the rationale
>> behind the decision to use the wallclock, I know you will have one!
>> If we choose to farm out evaluations with max_jobs_per_slave set to
>> M/N (M = pop size, N = slaves), and we had control over the seeds
>> of the slaves, wouldn't we be able to perfectly replicate an
>> individual run? For me, this would be more important than
>> efficiency (especially considering my slaves are almost identical).
>> David R White
>> Research Student
>> Department of Computer Science
>> University of York
>> York YO10 5DD
>> United Kingdom