Here are two screenshots showing it: Both optimizations were over the same period with the same strategy and settings. I went into the code and made a toggle for multi-core if it's enabled or not. The multi-core enabled picture is with the regular genetic optimizer. The multi-core disabled picture is with the genetic optimizer multi-core set to always false.
Note: The optimization was very narrow, so these are all the possible combinations - it was 12 possible combinations. Yes, with a regular genetic optimization different results would be expected. But I found that all 12 possible combinations were correctly generated (as in, sent to "RunIteration") both times, but only when multi-core was enabled were the results generated ("IterationComplete") skewed. Since the GO code eliminates duplicates of the same settings, even larger optimizations would be affected as well. It seems that about 10-15% of results are dropped/don't come through.
I think the problem is that somewhere in the internal handling, there needs to be a
lock (this)
Comment